谁想轻松点?我试图使用变量设置从一个工作表到另一个工作表的列范围。 startm
将始终为整数。我知道我可以做this或this之类的事情,但我讨厌offset
XD除了连接一百万个和“&”之外,还有一种“更智能”的方式吗?
For Each s In thisWB.Worksheets
...
With ws
.Columns(3:14-startm+1)=s.columns(startm:14) 'this don't work ;_;
答案 0 :(得分:1)
由于您使用的是列号而不是字母,因此这里最好的方法是for
循环:
For Each s In thisWB.Worksheets
...
With ws
For col = 3 to 14-startm+1
'may have to adjust these values in here to fit your dynamic need, but
' the overall idea here is sound
.Columns(col).Value = s.Columns(col+startm).Value
Next col
End ws
Next s
我没有在.columns()...
行的后半部分对你的startm +/-东西进行逆向工程,但是在填充该空白后,这应该是你需要的。
答案 1 :(得分:1)
您可以尝试这样的事情:
Range(.Cells(1, 3), .Cells(1, 14 - startm + 1)).EntireColumn = _
Range(Sheets(1).Cells(1, startm), Sheets(1).Cells(1, 14)).EntireColumn.Value
但没有一定的限制,可能会很慢
答案 2 :(得分:1)
根据要求,我会使用:
.Columns(3).Resize(, 14 - startm + 1).value = s.Columns(startm).Resize(, 14 - startm + 1).value