高级函数指令
Advance Function InStr
我知道如何使用函数InStr,但我不知道如何使用它:
Image of my excel.
我想循环将数据插入正确的单元格中。
我添加第二个元素的代码是:
For j = 3 To 129
For i = 2 To 849
Cells(i, j) = Mid(Cells(i, 1), InStr(Cells(i, 1), ",") + 1, (InStr(InStr(Cells(i, 1), ",") + 1, Cells(i, 1), ",")) - (InStr(Cells(i, 1), ",") + 1))
Next i
Next j
问题是,我将不得不使用复杂的循环来根据变量 j 执行大量 InStr。
如果函数 InStr 有一个地方我说:我想找到第 x 个字符 (",") 我会让它工作;问题是我需要一个双 InStr 来忽略第一个“,”所以它给了我第二个“,”的位置。
我觉得这个问题比较复杂,有什么不懂的可以问我!
P.S.: 我已经插入了 B/entry 和 C/class.
列的值
改用Split()
:
如果您想按照它们已经出现的相同顺序放置所有值:
Dim values As Variant
For i = 2 to Cells(Rows.Count, 1).End(xlUp).Row
values = Split(Cells(i, 1).Value, ",")
Cells(i, 1).Resize(1, UBound(values) + 1).Value = values
Next
或者如果你想在不同的列中使用不同的值:
Dim values As Variant
For i = 2 to Cells(Rows.Count, 1).End(xlUp).Row
'// Create an array of values from your string
values = Split(Cells(i, 1).Value, ",")
'// Lets say you want to put the 3rd value in column D
Range("D" & i).Value = CStr(values(2)) '// arrays are zero indexed and start at 0
Next
我知道如何使用函数InStr,但我不知道如何使用它:
Image of my excel. 我想循环将数据插入正确的单元格中。 我添加第二个元素的代码是:
For j = 3 To 129
For i = 2 To 849
Cells(i, j) = Mid(Cells(i, 1), InStr(Cells(i, 1), ",") + 1, (InStr(InStr(Cells(i, 1), ",") + 1, Cells(i, 1), ",")) - (InStr(Cells(i, 1), ",") + 1))
Next i
Next j
问题是,我将不得不使用复杂的循环来根据变量 j 执行大量 InStr。
如果函数 InStr 有一个地方我说:我想找到第 x 个字符 (",") 我会让它工作;问题是我需要一个双 InStr 来忽略第一个“,”所以它给了我第二个“,”的位置。
我觉得这个问题比较复杂,有什么不懂的可以问我!
P.S.: 我已经插入了 B/entry 和 C/class.
列的值改用Split()
:
如果您想按照它们已经出现的相同顺序放置所有值:
Dim values As Variant
For i = 2 to Cells(Rows.Count, 1).End(xlUp).Row
values = Split(Cells(i, 1).Value, ",")
Cells(i, 1).Resize(1, UBound(values) + 1).Value = values
Next
或者如果你想在不同的列中使用不同的值:
Dim values As Variant
For i = 2 to Cells(Rows.Count, 1).End(xlUp).Row
'// Create an array of values from your string
values = Split(Cells(i, 1).Value, ",")
'// Lets say you want to put the 3rd value in column D
Range("D" & i).Value = CStr(values(2)) '// arrays are zero indexed and start at 0
Next