IT序号网

vba之如何替换 VBA 中的空格字符

kenshinobiy 2025年02月15日 编程语言 48 0

我正在尝试用破折号 (-) 替换空格。当我浏览我的角色时,每次我发现它们之间有空格时,我都想用 - 替换它们。例如,如果我有一个字符串:A B,它应该被转换成A-B。这是我的代码:

Sub prac() 
      Dim x As String, a As Long, lastrow As Long, i As Long 
      Dim xcell As String 
      x = "-" 
      a = 1 
      lastrow = Worksheets("Sheet1").UsedRange.Rows.Count + 1 
         For i = a To lastrow 
           xcell = Worksheets("Sheet1").Range("A" & i) 
              If InStr(1, xcell, "") > 0 Then 
           Worksheets("Sheet1").Range("A" & i) = strReplace("xcell", "", x) 
             End If 
         Next i 
End Sub 

请您参考如下方法:

我在您的代码中看到三个半错误:

  1. 您的 Instr(1, xcell, "") 正在搜索空字符串。尝试 Instr(xcell, "") 检测空格(然后只检测可能的许多空格中的第一个)。
  2. strReplace("xcell", "", x):你要找的方法是replace(),见https://msdn.microsoft.com/de-de/library/bt3szac5%28v=vs.90%29.aspx .
  3. 如果您要编写 replace("xcell", "", x)(请注意已更正的错误 #1),您将不会查看变量 内部xcell,但在字符串 "xcell" 中。去掉引号以解决变量问题。

  4. 一半的错误是,您不必搜索出现的 ""。命令 Worksheets("Sheet1").Range("A"& i) = replace(xcell, "", x) 将用破折号替换所有空格。如果没有空格,则不会替换任何内容。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!