删除输出中间的双空格

时间:2014-03-03 16:33:41

标签: excel vba excel-vba

所以我在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,或者我可以在它之前运行替代品吗?

2 个答案:

答案 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