【问题标题】:Split Data in VBA在 VBA 中拆分数据
【发布时间】:2017-06-12 17:40:59
【问题描述】:

目前我面临一个问题,特别是我不知道如何解决。 我有一张桌子:
--------------------------
| d.dasd |
| dasda.dasda |
| fdsfs.fsdf |
| fdsfdsaf.fdsafasdf |
| dasda.dasdasdas |
---------------------------

问题是我想删除“点”之后的字符串。我用 VBA 写了一个脚本:

Sub SplitText()

Dim Counter As Integer
Counter = 1
Dim LastRow As Long
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Dim Temp As String
Dim Splited As String

Do While Counter <= LastRow

    Temp = Cells(Counter, 1).Value
    Splited = Split(Temp, ".")
    MsgBox Splited

Counter = Counter + 1
Loop

End Sub

但我在 'Splited = Split(Temp, ".")
中遇到问题 点后面的数据应该删除。

我该怎么办?

【问题讨论】:

  • Splited(0) 会给你第一部分
  • 这意味着我应该做 Splited = Split(Temp, ".")(0) ?
  • @MariuszAdamczewski 是的
  • 您需要先定义Dim Splited As Variant,因为您试图在运行时使用Split 修改它的大小(产生一个数组)。然后你想读取数组的第一个元素,MsgBox Splited(0)

标签: vba excel split


【解决方案1】:

根据 cmets,如果您想要的只是 . 前面的文本,那么只需更改一行:

Sub SplitText()

Dim Counter As Integer
Counter = 1
Dim LastRow As Long
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Dim Temp As String
Dim Splited As String

Do While Counter <= LastRow

    Temp = Cells(Counter, 1).Value
    Splited = Split(Temp, ".")(0)
    MsgBox Splited

Counter = Counter + 1
Loop

End Sub

【讨论】:

  • 谢谢。它的工作方式类似于下面的解决方案。但在这里我没有数组。谢谢 + 1
【解决方案2】:

试试这个代码:

Sub SplitText()

    Dim Counter As Integer
    Counter = 1
    Dim i As Integer
    Dim LastRow As Long
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    Dim Temp As String
    Dim Splited As Variant  '~~> Splited will be Variant and NOT string

    Do While Counter <= LastRow

        Temp = Cells(Counter, 1).Value
        Splited = Split(Temp, ".")  

        '~~> Run a loop on array and get all the items
        For i = LBound(Splited) To UBound(Splited)
            MsgBox Splited(i)
        Next

        Counter = Counter + 1
    Loop

End Sub

【讨论】:

  • 它工作正常。我只是在 MsgBox 之后添加了 for,“Exit For”,因为我只想要字符串的第一部分。但它是正确的。谢谢你,祝你有美好的一天! + 1
  • 很高兴为您提供帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
相关资源
最近更新 更多