gpt4 book ai didi

vba - 设置范围时出现运行时错误 1004

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

我正在尝试创建一个范围数组,但出现“应用程序定义或对象定义错误”。错误出现在带有 Set Rng 的行上。 .格式应该没问题,即使行有点长。我已经指定了要从中获取范围的工作表,并且 sub 当前位于模块 1 中。这可能只是某个地方的拼写错误,但是在重新检查了六次之后,我会很失望,如果就是这样。

Sub TableRange(ByVal Target As Range)
Dim Rng As Range
Dim Area As Range
Set Rng = Worksheets("Tables").Range("A3:D23,A28:C39,A44:E61,A66:C102,A107:E121,A126:C135,A140:C149,A153:C162,A167:C192,A197:F215,A220:C269,A274:D282,A287:D295,A300:D304")
Set Rng = Union(Rng, Worksheets("Tables").Range("A309:C358,A363:C389,A394:C412,A417:C437,A442:C462,A467:D475,A480:D487,A492:C531,A536:D544,A549:D557,A562:C574,A579:D598,A603:D622"))

For Each Area In Rng.Areas
If Not Intersect(Target, Worksheets("Tables").Range(Area)) Is Nothing Then
'do stuff
End If
Next Area
End Sub

如果还有什么我应该提到的或者我可以做些什么来改进我的问题,请告诉我,我会相应地编辑我的帖子。

更新 : 范围数组已被修复,感谢@user3964075,但现在我似乎在 If Not Intersect - Is Nothing Then 上遇到了同样的错误

最佳答案

代码很好,但字符串常量超过了 Range 允许的最大长度(255 个字符)属性(property)。您可以通过以下方式轻松修复它:

Set Rng = Worksheets("Tables").Range("A3:D23,A28:C39,A44:E61,A66:C102,A107:E121,A126:C135,A140:C149,A153:C162,A167:C192,A197:F215,A220:C269,A274:D282,A287:D295,A300:D304")
Set Rng = Union(Rng, Worksheets("Tables").Range("A309:C358,A363:C389,A394:C412,A417:C437,A442:C462,A467:D475,A480:D487,A492:C531,A536:D544,A549:D557,A562:C574,A579:D598,A603:D622"))

也许考虑使用命名范围而不是这个长列表。

编辑:要解决第二个问题,请将其更改为:
If Not Intersect(Target, Area) Is Nothing Then
'do stuff
End If

关于vba - 设置范围时出现运行时错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32247203/

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