2017-06-08 59 views
1

所以我用了2范围()项:Excel VBA中的错误1004范围

Set myRange1 = Range("E2:E8,D9:D12,F9:F12,J2:J8,I9:I12,K9:K12,O2:O8,N9:N12,P9:P12,E14:E20,D21:D24,F21:F24,J14:J20,I21:I24,K21:K24,O14:O20,N21:N24,P21:P24,E26:E32,D33:D36,F33:F36,J26:J32,I33:I36,K33:K36,O26:O32,N33:N36,P33:P36") 
Set myRange2 = Range("C6:C9,E7:E9,G7:G9,J6:J9,L7:L9,N7:N9,Q6:Q9,S7:S9,U7:U9,X6:X9,Z7:Z9,AB7:AB9,C12:C15,E13:E15,G13:G15,J12:J15,L13:L15,N13:N15,Q12:Q15,S13:S15,U13:U15,X12:X15,Z13:Z15,AB13:AB15,C18:C21,E19:E21,G19:G21,J18:J21,L19:L21,N19:N21,Q18:Q21,S19:S21,U19:U21,X18:X21,Z19:Z21,AB19:AB21") 

myRange1是好的,myRange2抛出对象的运行时错误1004法 '范围'“_Global失败。

有谁知道为什么?范围内的范围太多了吗?在我看来,他们都很长。

+1

地址不多,但字符太多。即它传递给Range方法的字符串的长度是问题 - 它的最大长度为255个字符。 – YowE3K

回答

3

太多是正确的答案。不过,如果你想使用它们试试这招:

Set myRange2 = Range("C6:C9,E7:E9,G7:G9,J6:J9,L7:L9,N7:N9,Q6:Q9,S7:S9,U7:U9,X6:X9,Z7:Z9,AB7:AB9") 
Set myRange2 = Union(myRange2,range("C12:C15,E13:E15,G13:G15,J12:J15,L13:L15,N13:N15,Q12:Q15,S13:S15,U13:U15,X12:X15,Z13:Z15,AB13:AB15,C18:C21,E19:E21,G19:G21,J18:J21,L19:L21,N19:N21,Q18:Q21,S19:S21,U19:U21,X18:X21,Z19:Z21,AB19:AB21")) 

您最多可以有30个参数的联盟:

https://msdn.microsoft.com/en-us/library/office/ff834621.aspx

但如果增加像上面的代码,你可以永远这样去。