【问题标题】:VBA Runtime error 1004 Range with double digitsVBA 运行时错误 1004 范围与两位数
【发布时间】:2017-05-04 23:23:43
【问题描述】:

我的意图是连续选择所有其他单元格。我的代码(我确信必须有更好的方法来完成此任务,但我想一次一步):

Range("C" & row & ":C" & row + 1 & ", E" & row & ":E" & row + 1 & ", G" & row & ":G" & row + 1 & ", I" & row & ":I" & row + 1 & ", K" & row & ":K" & row + 1 & ", M" & row & ":M" & row + 1 & ", O" & row & ":O" & row + 1 & ", Q" & row & ":Q" & row + 1 & ", S" & row & ":S" & row + 1 & ", U" & row & ":U" & row + 1 & ", W" & row & ":W" & row + 1 & ", Y" & row & ":Y" & row + 1 & ", AA" & row & ":AA" & row + 1 & ", AC" & row & ":AC" & row + 1 & ", AE" & row & ":AE" & row + 1 & ", AG" & row & ":AG" & row + 1 & ", AI" & row & ":AI" & row + 1 & ", AK" & row & ":AK" & row + 1 & ", AM" & row & ":AM" & row + 1 & ", AO" & row & ":AO" & row + 1 & ", AQ" & row & ":AQ" & row + 1 & ", AS" & row & ":AS" & row + 1 & ", AU" & row & ":AU" & row + 1 & ", AW" & row & ":AW" & row + 1 & ", AY" & row & ":AY" & row + 1 & ", BA" & row & ":BA" & row + 1).Select

我将增加 2 以突出显示其他每一行。当row 大于 10 时,它返回一个错误(方法 'range' of object' _Global' failed)。我无法通过 Google 找到任何答案。似乎不是一个普遍的问题。我真的很困惑为什么它只适用于个位数的行。任何帮助表示赞赏。

【问题讨论】:

  • IIR 文本 Range 规范有 255 个字符的限制。
  • 或者把整个字符串粘贴到像?string这样的即时窗口中,看看它产生了什么

标签: vba excel range runtime-error


【解决方案1】:

这可能更容易编码 |阅读 |调试。

Dim ws as Worksheet
Set ws = Worksheets("mySheet") 'change as needed

Dim x as Integer
For x = 3 to 53 Step 2 'loop from C to BA skipping 1 column in between

   Dim rngEveryOther as Range
   If rngEveryOther is Nothing
       Set rngEveryOther = ws.Range(ws.Cells(i,x),ws.Cells(i+1,x))
   Else
       Set rngEveryOther = Union(rngEveryOther, ws.Range(ws.Cells(i,x),ws.Cells(i+1,x)))
   End If

Next

rngEveryOther.Select

Union 语句会将单元格连接到现有范围中(如果从代码中看不出来的话)。

【讨论】:

  • 稍作调整,它就像一个魅力!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多