下面的代码给出了我的下标超出范围的错误。在这一行给我错误:
[ oSheet.Cells(i,5).Value = g(h) ]
我使用上面的代码使用split函数分隔字符串。我在一个单元格中的excel中有以下数据:
Pankaj sharma;#234; #khushal verma;#786; #parul datta;#456;#
我想使用VBA将其转换为此:
pankaj sharmakhushal verma
Dim c
Dim d
Dim h
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("D:\test4.xlsm")
objExcel.Visible = True
objExcel.displayalerts = false
Set objExcel2 = CreateObject("Excel.Application")
strPathExcel = "C:\Users\ssontakke\Desktop\test6.xlsx"
objExcel2.Workbooks.open strPathExcel
Set oSheet = objExcel2.ActiveWorkbook.Worksheets(1)
a = 2
i = 2
j = 2
Do Until objExcel.Cells(a, 1).Value = ""
c = 0
d = 0
h = 0
inputText=objExcel.Cells(j, 5).Value
Do Until c = objExcel.Cells(j, 4).Value
g = split(inputText,";#")
oSheet.Cells(i,3).Value = g(h)
c = c + 1
i = i + 1
d = d + 1
h = h + 2
Loop
i = i + 1
a = a + 1
j = j + 1
Loop
objExcel.Save
objExcel2.Save
objExcel.Quit
objExcel2.Quit
答案 0 :(得分:0)
g
没有h
个元素(或者,正确地,h-1
个数字元素)。 h
是数组的无效索引。
这可能是因为正在拆分的字符串(inputText
)不包含预期的分隔符数;#
,或者字符串可能是空的。
例如,分割后的字符串“0#; 1#; 2”将是:
索引0处的“零”
指数1的“一”
指数2的“两个”
如果您尝试获取g(3)
,则不存在此类元素 - “下标超出范围。”