问题描述
我想用+ XX(XX)XXX XX XX格式的相同号码替换+ XX-XX-XXX XX XX格式的电话号码。我有一个几乎可以正常工作的查找/替换Makro:
WebElement inputDiv = driver.findElement(By.xpath("your_path_to_div"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("document.querySelector('your_selector_to_div').innerText='aaa'");
inputDiv.clear();
inputDiv.sendKeys(subject);
现在的问题是数字以这种格式显示:+ ?? (??)XXX XX XX。 VBA中有没有办法说我要以此格式替换它,而保留这些空格(+ XX和(XX)不变),因为我这样做的方式只是用我在“替换”中定义的内容完全替换了所有内容: 。 也许有一种方法可以将数字临时保存在??通配符是,然后将它们添加回“替换:”部分中?
如果有人可以帮助菜鸟,那会很酷
解决方法
请尝试这种方式:
Dim x As String,y As String,ar As Variant
x = "+XX-XX-XXX XX XX"
ar = Split(x,"-")
y = ar(0) & " (" & ar(1) & ") " & ar(2)
MsgBox y
,
只是为了好玩,这是一个工作表功能:
=TEXT(SUM(IF(ISNUMBER(1/(MID(A1,SEQUENCE(20),1)+1)),MID(A1,1)*10^MMULT(-(SEQUENCE(20)<TRANSPOSE(SEQUENCE(20))),-ISNUMBER(1/(MID(A1,1)+1))))),"+00 (00) 000 00 00")
该函数首先从字符串中删除所有非数字,然后使用TEXT
函数格式化结果数字。
如果您使用的是excel较旧的版本,但没有SEQUENCE
函数,则可以创建一个命名公式来生成类似的数字数组。将SEQUENCE(20)
替换为seq
,其中
seq Refers To: =ROW(INDEX($A:$A,1,1):INDEX($A:$A,20,1))
您可以在VBA中使用类似的算法,首先删除所有非数字,然后使用vba Format
函数创建格式化的字符串。