移除输出中间的双空格 所以我在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 我的问题是:有没有一种不使用单元格来保存公式的方法 下面是我用来提取我想要修改的内容的代码移除输出中间的双空格 所以我在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,vba,excel,Vba,Excel,隐藏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
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
对我的问题的一个修正是,我是否需要输出来命中单元格,或者我是否可以在替换之前运行它?您可以做的一件事是使用替换,而不是使用左侧和右侧并连接它们:
=SUBSTITUTE(I2;" ";"")
这将减少所需的hideen柱的数量
不确定您正试图做什么,但您可以使用选定/目标区域上的循环替换原始内容。然后不需要任何公式,原始范围将替换为新值。只需将
.Formula=“=CONCATENATE(J2,K2)”
更改为。Formula=“=CONCATENATE(LEFT(I2,6)、RIGHT(I2,7))”
或只需使用。Formula=“=SUBSTITUTE(I2,”、“”)
所以,我使用了simoco给我的替代公式,这个公式有效,但我想我不明白你答案的第二部分。我是否能够将输出保存为Long,然后在其上运行替换?下面的Ron实现了我的建议。可以编写如下宏:
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