通过在范围值上使用分割来分配数组时出错
问题描述:
我想从一个单元格解析一个字符串到一个数组以分离数据并将其放入另一个工作表中。通过在范围值上使用分割来分配数组时出错
我一直收到无法分配到阵列错误,我不知道我在做什么错。我确信数据类型是正确的,甚至确保阵列上有足够的空间。
这里是我的代码:
Private Sub Enter2_Click()
'Define Variables
Dim MatchRow As Integer
Dim data(7) As String
Dim row As Integer
Dim col As Integer
Dim dataInfo As String
Worksheets("Sheet1").Activate
'Match Name To A Row
MatchRow = WorksheetFunction.Match(RName.Value, Range("A1:A100"), 0)
MsgBox MatchRow
'call report
Cells(MatchRow, 3).Select
data() = Split(ActiveCell.Value, ".", 1) 'This is where the error comes from
MsgBox data(0)
Worksheets("Repoting template").Cells(20, 1).Select
答
如果你有这样的样本数据:
你可以试试这个代码:
Option Explicit
Sub Test()
Dim rng As Range
Dim data() As String
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("A1")
data = Split(rng.Value, ".", -1, vbBinaryCompare)
Dim i As Integer
For i = LBound(data) To UBound(data)
Debug.Print data(i)
Next i
End Sub
这样做具有以下输出:
A
B
C
D
E
F
G
u必须将其声明为变的,不需要指定因为尺寸你正在使用'split',也就是'dim data as variant',然后'data = split(activecell.value,“。”)' – Rosetta
现在说s类型不匹配。 –
限制默认为'-1',它是'-1'但不是'1'。 – Rosetta