我正在寻找这种code
的替代品,但使用数字。 我想选择5列,起始列是一个变量,然后从中选择5列。VBA - 使用数字选择列?
Columns("A:E").Select
如何使用integers
来代替列引用?像下面的东西?
For n = 1 to 5
Columns("n : n + 4") .select
do sth
next n
谢谢。 Gemmo
我正在寻找这种code
的替代品,但使用数字。 我想选择5列,起始列是一个变量,然后从中选择5列。VBA - 使用数字选择列?
Columns("A:E").Select
如何使用integers
来代替列引用?像下面的东西?
For n = 1 to 5
Columns("n : n + 4") .select
do sth
next n
谢谢。 Gemmo
可以使用调整像这样:
For n = 1 To 5
Columns(n).Resize(, 5).Select
'~~> rest of your code
Next
在任何范围操纵你做的,始终保持在你的脑海里调整和抵消财产。
您可以指定地址为“R1C2”而不是“B2”。在文件 - >选项 - >形式 - >使用公式工作有一个切换R1C1参考样式。可以设置,如下图所示。
可以使用range
与cells
得到你想要的效果(但它是最好不要使用选择,如果你没有)
For n = 1 to 5
range(cells(1,n).entirecolumn,cells(1,n+4).entirecolumn).Select
do sth
next n
尝试使用以下,其中n
是你的变量,x是你的(4在这种情况下)偏移:
LEFT(ADDRESS(1,n+x,4),1)
这将返回该列的字母(所以对于n = 1和x = 4,它将返回A + 4 = E)。然后,可以使用INDIRECT()
引用此,像这样:
COLUMNS(INDIRECT(LEFT(ADDRESS(1,n,4),1)&":"&LEFT(ADDRESS(1,n+x,4),1)))
其具有n = 1,X = 4变为:
COLUMNS(INDIRECT("A"&":"&"E"))
等:
COLUMNS(A:E)
通过这种方式,您可以开始选择数据,即使在列“Z”后面也可以选择很多列。
Sub SelectColumNums()
Dim xCol1 As Integer, xNumOfCols as integer
xCol1 = 26
xNumOfCols = 17
Range(Columns(xCol1), Columns(xCol1 + xNumOfCols)).Select
End Sub
在下面的示例代码中,我使用变量来显示命令如何用于其他情况。
FirstCol = 1
LastCol = FirstCol + 5
Range(Columns(FirstCol), Columns(LastCol)).Select
这应该是我认为的评论。 – ketan 2016-03-15 04:17:40
无需循环或类似..试试这个..
dim startColumnas integer
dim endColumn as integer
startColumn = 7
endColumn = 24
Range(Cells(, startColumn), Cells(, endColumn)).ColumnWidth = 3.8 ' <~~ whatever width you want to set..*
这似乎只为我选择了这些列中的第一行。 – jep 2016-06-20 15:40:05
Columns("A:E").Select
可以通过
Columns(1).Resize(, 5).EntireColumn.Select
其中1可以通过一个可变
n = 5
Columns(n).Resize(, n+4).EntireColumn.Select
更换在我看来,你是最好的处理,而列的块可直接替换比循环列n到n + 4更有效。
另外,使用select会减慢代码的速度。因此,不要选择您的列,然后对选择执行操作,而是直接执行操作。以下是将列A-E的颜色更改为黄色的示例。
Columns(1).Resize(, 5).EntireColumn.Interior.Color = 65535
嗨,如果我想使用列数 – 2016-09-16 10:50:38
@JaydeepShil你能更多地讨论你想要做什么,得到的只是一个特定列的列范围是多少? – L42 2016-09-20 06:50:27