[问题] EXCEL VBA阵列索引超出范围(错误代码9)

楼主: lulumiya2000 (igneous)   2023-04-26 14:56:54
(若是和其他不同软件互动之问题 请记得一并填写)
软件:excel
版本:excel 2019
各位大大好
目前总表有超连结过去后面试算表
然后我想在试算表建立一个超连结回总表的超连结
VBA码是这样
目前有些总表料号没有后面试算表
所以我有做跳过
但是还是在
Set targetSheet = Sheets(myStr)这行跳出阵列索引超出范围
全部代码在下面
感谢大大解惑
Sub three()
Dim cell As Range
Dim targetSheet As Worksheet
Dim returnLink As Hyperlink
Dim targetRange As Range
Dim myStr As String
Dim i As Integer
'从第一分页中的C3单元格获取超连结
For Each cell In Sheets("库存总表").Range("C3:C1056")
For i = 3 To 1056
'在每次循环中定义myStr变量,以确保其值不会超出范围
myStr = Sheets("库存总表").Range("C" & i).Value
If cell.Hyperlinks.Count > 0 Then
'获取目标工作表和储存格
Set targetSheet = Sheets(myStr)
Set targetRange = targetSheet.Range("E2")
Set cell = Sheets("库存总表").Range("C" & i)
'创建返回超连结
Set returnLink = targetRange.Hyperlinks.Add(Anchor:=targetRange, _
Address:="", SubAddress:="库存总表!" & cell.Address, _
TextToDisplay:="返回总表")
Else: GoTo Nextcell
End If
Next i
Nextcell:
Next cell
End Sub
作者: dennis699 (钤)   2023-04-26 15:22:00
推一个
作者: newacc (XD)   2023-04-26 16:02:00
For循环一个就够了Range("C" & i)改成cell还有中间Set cell可以直接删掉cell是流程变量,不要在流程中改变它控制*

Links booklink

Contact Us: admin [ a t ] ucptt.com