我正在尋找這種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