我知道如何使用函数InStr,但我不知道如何以这种方式使用它:
我擅长的形象。我想要做一个循环,将数据插入到正确的单元格中。我添加第二个元素的代码是:
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有一个位置,我说:我想找到xth字符(“,"),我会让它工作;问题是我需要一个双InStr来忽略第一个,”所以它给了我第二个的位置,“。
我认为这个问题要复杂得多,所以问我任何你不明白的事情!
P.S.:我已经插入了B/entry和C/class列的值。
发布于 2016-05-23 11:27:38
使用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
Nexthttps://stackoverflow.com/questions/37389651
复制相似问题