所以我在excel中使用了一些带有一些VBA的API,我从程序中得到的输出在123456 7891011之类的数字中间放置了一个双重空格。我目前的解决方案就是这个,
With ws.Range("J2:J98")
.Formula = "=LEFT(I2,6)"
End With
With ws.Range("K2:K98")
.Formula = "=RIGHT(I2,7)"
End With
With ws.Range("L2:L98")
.Formula = "=CONCATENATE(J2,K2)"
.Value = .Value
.NumberFormat = "0"
End With
隐藏J和K.
我的问题是:有没有办法在不使用单元格来保存公式的情况下执行此操作?
这是我用来拉动我想要修改的代码
ActiveSheet.Cells(k, 9) = Trim(autECLSession.autECLPS.GetText(4, 24, 15))
,解决方案是
With ws.Range("L2:L98")
.Formula = "=Substitute(I2,"" "", """")"
.Value = .Value
.NumberFormat = "0"
End With
我的问题的一个修正案是,我甚至需要输出才能击中Cell,或者我可以在它之前运行替代品吗?
答案 0 :(得分:0)
你可以做的一件事是使用替代品而不是左右两侧连接它们:
=SUBSTITUTE(I2;" ";"")
这会减少所需的hideen colums数量。
不确定您要做什么,但您可以使用所选/目标区域上的循环替换原始内容。然后不需要公式,原始范围将替换为新值。
答案 1 :(得分:0)
Activecell = Range("J2")
for x=1 to 97
if instr(1, activecell, " ") > 0 then ' test do see if a double space is present in the activecell
activecell = replace(activecell, " ", "") ' if so, remove it
else
end if
next x