gpt4 book ai didi

vba - 相交命令因工作表范围不同而失败

转载 作者:行者123 更新时间:2023-12-04 21:37:57 27 4
gpt4 key购买 nike

我正在尝试创建一个自我更新下拉列表。为了实现这一点,我找到了一个代码并将其改编为我的工作簿。如果代码位于名为“默认”的工作表中,但当我尝试将其重定向到另一个工作表时,它会卡在下面的代码中,并出现此错误(方法“相交”对象“_global 失败”

如果 Intersect(Target, Worksheets("default").Range("c"& count_cells + 1)) 什么都没有,那么

    Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim count_cells As Integer
Dim new_value As String
Dim old_value As String
For count_cells = 1 To Worksheets("default").Range("c2:c400").CurrentRegion.Rows.Count - 1
If Intersect(Target, Worksheets("default").Range("c" & count_cells + 1)) Is Nothing Then
Else
Application.EnableEvents = False
new_value = Target.Value
Application.Undo
old_value = Target.Value
Target.Value = new_value
Range("AS:AS").Select
Selection.Replace What:=old_value, Replacement:=new_value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Target.Select
End If
Next count_cells
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

最佳答案

如果两个范围在同一个工作表上,则只能使用 Intersect()。例如:

Sub IntersectTest()
Dim r1 As Range, r2 As Range, r3 As Range
Set r1 = Sheets("Sheet1").Range("A1")
Set r2 = Sheets("Sheet2").Range("A1")
Set r3 = Intersect(r1, r2)
End Sub

将失败............就像你的代码一样。

关于vba - 相交命令因工作表范围不同而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560327/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com