【问题标题】:VBA excel if cell contains character then split text to columns如果单元格包含字符,则VBA excel然后将文本拆分为列
【发布时间】:2017-09-01 06:58:56
【问题描述】:

我有一段相当简单的代码似乎不起作用。如果单词包含字符“,”,我需要拆分单元格,但前提是它包含字符。我认为使用 IF,然后,Else 会起作用,但每次它到达一个没有“,”的单元格时,我最终会得到“Range 类的 TextToColumns 方法失败”

If InStr(1, (Range("C32").Value), ",") > 0 Then

Range("C32").TextToColumns Destination:=Range("B14"), DataType:=xlDelimited, _
Other:=True, OtherChar:=","

Else

End If

任何帮助将不胜感激

【问题讨论】:

  • 对我来说,如果单元格中没有,,则执行ELSE 条件,因此不会出错。发布您的示例数据可能会有所帮助。
  • 谢谢大家,我也不太清楚问题出在哪里,它在大约 80% 的时间里都有效。这附在一个很长的 API 调用字符串的底部,我将搜索并查看是否可以找到问题,并将返回我找到的内容,否则将发布代码寻求帮助。也许将这段代码分开并使用 call 会停止错误。
  • 您没有在代码中引用工作簿或工作表。如果 ActiveSheet 在其他地方发生变化,您可能会遇到这种麻烦。也许尝试在代码中指定您打算处理的工作表。

标签: vba excel


【解决方案1】:

您的代码没问题。我试过了,效果很好。

Sub Split()
If InStr(1, (Range("C2").Value), ",") > 0 Then
Range("C2").TextToColumns Destination:=Range("B3"), DataType:=xlDelimited, _
Other:=True, OtherChar:=","
Else
MsgBox "kk"
End If
End Sub

使用没有“,”的 cel,我每次都会得到 msgbox“kk”。我正在使用 MS 2010,也许这就是问题所在?

【讨论】:

    【解决方案2】:

    您不需要程序。只需使用 , 作为数据分隔符的数据功能区中的文本到列。如果该行不包含逗号,则不会拆分该行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      相关资源
      最近更新 更多