【问题标题】:Split Function using an Excel row as delimiter使用 Excel 行作为分隔符的拆分函数
【发布时间】:2015-07-09 13:21:15
【问题描述】:

我有一个用过的列,我想创建一个数组,使用单元格/行作为分隔符将该列拆分为多个项目。

类似:MyArray = Split(Excel.Workbooks(X).Worksheets(X).UsedRange.Columns(X), Row)

我收到Type Mismatch 错误。

是否可行或有任何解决方法?

【问题讨论】:

  • 很少有我不理解一个问题,但我不明白这个问题。
  • 如果您正在寻找除单元格之外的分隔符,它本身已分离/拆分,您可以按照您的需要复制/粘贴。如果您想分隔单元格内容意味着您可以查看我的答案。
  • MyArray = Excel.Workbooks(X).Worksheets(X).UsedRange 已经被拆分,因为这会将每个单元格读入数组?
  • 如果你之前用过Split函数,并且知道分隔符是什么,那么很抱歉,但我的问题已经很清楚了。
  • @LevySchiavetti 您的问题不清楚,因为您没有以屏幕截图的形式提供预期的输入和输出,也没有输入工作表前后的样子。尽管如此,我还是尝试澄清Split() 函数可以做什么。

标签: arrays vba excel split


【解决方案1】:

Split() 函数的正确语法是Split([String], [Delimiter String])。要在您的示例中完成此操作,最好创建一个循环:

http://www.homeandlearn.org/the_split_function.html

Sub SplitIt()
    Dim LastRow As Long, txt As String, i as Integer, CurRow as Long, MyArray as Variant, ws as Worksheet
    Set ws = Sheets("Name of Sheet")
    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
    For CurRow = 1 to LastRow
        MyArray = Split(ws.Range("A" & CurRow).Value, "[Delineation String]")
        For i = 0 to UBound(MyArray)
            ws.Cells(CurRow, i + 2).Value = MyArray(i)
        Next i
    Next CurRow
End Sub

例如,如果 A 列有三个由“空格”分隔的单词,并且您使用“空格”作为“描述字符串”,那么您会得到:

           A                B        C         D
1  Alpha Bravo Charlie    Alpha    Bravo    Charlie
2  Delta Echo Foxtrot     Delta    Echo     Foxtrot

【讨论】:

    【解决方案2】:

    如果您正在寻找拆分单元格内容并希望它在工作表/工作簿中的某个位置,您可以尝试此操作。

    Sub split_1()
    Dim myarray() As String
    Dim str As String
    str = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
    'str = "this,sentence,seperated,by,comma"
       myarray = Split(str, ",")
    
       For i = LBound(myarray) To UBound(myarray)
          Debug.Print myarray(i) 'here you can copy to other cells/sheets, etc.,
        Next
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多