如何在Excel 2003中更改我的代码以允许我粘贴到多个单元格?

遇到一个小问题。如果我尝试粘贴到下面代码范围内的多个单元格,则会出现运行时错误13,类型不匹配。范围中的单元格可能包含X以外的数据但我只希望在单元格包含X时显示超链接。如果我只是在单元格中键入X或者我一次粘贴到一个单元格,它就可以正常工作。我有时会想要将其他文本粘贴到此范围内的多个单元格中。感谢Remnant对原始代码的帮助。这最后一道障碍将让我明白。谢谢。
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rangeLimit As Range

 Set rangeLimit = Range 
("B9:B37,C9:C37,D9:D37,E9:E37,F9:F37,G9:G37,H9:H37,I9:I37,J9:J37,K9:K37,L9:L37,M9:M37")

 If Not Intersect(rangeLimit, Target) Is Nothing Then
     If Target = "x" Or Target = "X" Then
    Target.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="Exceptions!A1", 
    TextToDisplay:=Target.Value

  End If

 End If

 End Sub
    
已邀请:
尝试对原始代码进行此修改。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rangeLimit As Range
Dim cl As Range

Set rangeLimit = Range("B9:B37,C9:C37,D9:D37,E9:E37,F9:F37,G9:G37,H9:H37,I9:I37,J9:J37,K9:K37,L9:L37,M9:M37")

If Not Intersect(rangeLimit, Target) Is Nothing Then
    For Each cl In Target
        If cl = "x" Or cl = "X" Then
            cl.Hyperlinks.Add Anchor:=cl, Address:="", SubAddress:="Exceptions!A1", TextToDisplay:=cl.Value
        End If
    Next cl
End If

End Sub
    
我会这样(未经测试):
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rangeLimit As Range
    dim c as range

    Set rangeLimit = Range("B9:M37")
    If Not Intersect(rangeLimit, Target) Is Nothing Then
       for each c in Intersect(rangeLimit, Target) 
          If c.value = "x" Then
              c.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:="Exceptions!A1", TextToDisplay:=c.Value
          End If
        next c
    End If
End Sub
    
粘贴范围时,“目标”是一组单元格 - 而不仅仅是一个单元格。如果您知道此代码适用于一个单元格,则可以遍历范围目标中的所有单元格,并在每个单元格上调用If语句。     

要回复问题请先登录注册