Excel 对象要求错误';424';
A列中有超链接公式。=超链接(“,“P72R”) 如果B列(同一行)中的对应单元格不是空的,我想用B列中的任何内容替换公式的标签 我在Excel 对象要求错误';424';,excel,vba,Excel,Vba,A列中有超链接公式。=超链接(“,“P72R”) 如果B列(同一行)中的对应单元格不是空的,我想用B列中的任何内容替换公式的标签 我在cl.Formula=Left(cl.Formula,CommaPos+1)和cel.Offset(0,1).Value&““”“处获得所需的错误“424”对象。请查看下面的代码并帮助找出我缺少的内容 谢谢 Sub SpecialLoop() Dim cl As Range Dim rng As Range Dim CommaPos As
cl.Formula=Left(cl.Formula,CommaPos+1)和cel.Offset(0,1).Value&““”“
处获得所需的错误“424”对象。请查看下面的代码并帮助找出我缺少的内容
谢谢
Sub SpecialLoop()
Dim cl As Range
Dim rng As Range
Dim CommaPos As Long
Dim LastRow As Long
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Set rng = Sheets("Sheet1").Range("A2:A" & LastRow)
For Each cl In rng
If Not (IsEmpty(cl.Offset(0, 1).Value)) Then
CommaPos = InStr(cl.Formula, ",")
cl.Formula = Left(cl.Formula, CommaPos + 1) & cel.Offset(0, 1).Value & """)"
End If
Next cl
End Sub
除了获得VBE的工具之外► 选择权► 编辑► 如果需要变量声明集,则代码的其余部分中存在一些可能导致问题的漏洞 您比大多数人更了解自己的数据和公式结构,但不能保证可选的[friendly_name]参数存在。我建议使用来隔离的所需链接位置参数 用于引用父工作表的方法的一致性将有助于这个简短的sub。我将使用a来专门引用或一个工作表,而不是一个工作表的一半和另一个工作表的一半
Sub SpecialLoop()
Dim cl As Range, rng As Range
Dim lr As Long
With Sheets("Sheet1")
lr = .Range("A" & Rows.Count).End(xlUp).Row
Set rng = .Range("A2:A" & lr)
For Each cl In rng
If Not IsEmpty(cl.Offset(0, 1)) And _
Left(cl.Formula, 11) = "=HYPERLINK(" Then
cl.Formula = "=HYPERLINK(" & Chr(34) & _
Split(cl.Formula, Chr(34))(1) & Chr(34) & _
Chr(44) & Chr(34) & cl.Offset(0, 1).Value2 & Chr(34) & Chr(41)
End If
Next cl
End With
End Sub
cel
看起来像个打字错误。阅读选项显式
以避免将来使用它。@BrakNicku好眼睛。用户3781528,一次性设置编辑器选项以始终强制变量声明是一个很好的主意。