A列中有超链接公式。= HYPERLINK(“http://localhost:60151/load?file=file:///L:/all_runs_10_12_2015-151121/bam/Horizon_mutation_P72R.bam&goto&locus=chr17:7579422-7579522”,“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 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
答案 0 :(得分:0)
除了获取VBE的工具►选项►编辑器►需要变量声明集之外,代码的其余部分还有一些松散的结尾可能会导致问题。
您比大多数人更了解自己的数据和公式结构,但无法保证可选的 [friendly_name] 参数存在。我建议使用Split function来隔离HYPERLINK function所需的 link_location 参数。
用于引用父工作表的方法的一致性将有助于这个短子。我会使用With ... End With statement专门引用ActiveSheet property或工作表.Name property,而不是其中一半和另一半的一半。
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