作者lulumiya2000 (igneous)
看板Office
标题[问题] EXCEL VBA阵列索引超出范围(错误代码9)
时间Wed Apr 26 14:56:54 2023
(若是和其他不同软体互动之问题 请记得一并填写)
软体: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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.147.76 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1682492216.A.B3B.html
1F:推 dennis699: 推一个 04/26 15:22
2F:→ newacc: For回圈一个就够了 04/26 16:02
3F:→ newacc: Range("C" & i)改成cell 04/26 16:03
4F:→ newacc: 还有中间Set cell可以直接删掉 04/26 16:05
5F:→ newacc: cell是流程变数,不要在流程中改变它 04/26 16:06
6F:→ newacc: 控制* 04/26 16:07