• 2

請問 vba range("... : ...") 方面的問題

evaoto2012 wrote:
Selection.AutoFill...(恕刪)


謝謝提醒!
我只需紅字部分的關鍵用法,也已解決了問題!
f10629 wrote:
改寫一下7樓這段程式.
C = [C5:C12]
For Each i In C
Sheets(i).[E5:E12] = C
Next
..(恕刪)


雖然概念似乎可行,但,愚鈍的我無法把這段程式碼成功執行。

有宣告資料型態
dim i as variant
dim C as variant
並且有改為range("..:..")

請賜教,謝謝!
(VBA很多時候其實可以不用宣告變數型態,預設視為variant)

我這邊是看你上面的東西去改寫的
你在"執行程式的分頁"應該會先在C5~C12的儲存格"先設定其他分頁名"吧
是不是測試時這邊沒設定 或是 分頁名不符或不存在?

C = [C5:C12]
安全起見,這行可以再指定Sheet,如下
C = Sheets(1).[C5:C12] '指定第一個分頁(順序)

C = Sheets("工作表1").[C5:C12] '指定"工作表1"分頁(名稱)

C = [工作表1!C5:C12] '同上

原本不指定的寫法預設為當下顯示的頁面
即如下
C = ActiveSheet.[C5:C12]
f10629 wrote:
(VBA很多時候其實...(恕刪)


我其他工作表都已建好!

晚上有空,再來測試!

謝謝指導!
f10629 wrote:
(VBA很多時候其實...(恕刪)


Sheets(i).[E5:E12] = C <-------顯示陣列索引超出範圍
---------------------------------------------------------------------------
i ,不用給值嗎?
i 在前一行,用作For迴圈的變數
迴圈會輪流給他C裡面各成員的值

For Each i In C

下面的Next為Next i的簡寫
即進入迴圈的下一圈

迴圈還有很多寫法
可以Google一下 "VBA 迴圈"
https://blog.gtwang.org/programming/excel-vba-programming-loop/

C = [C5:C12]
For Each i In C
Sheets(i).[E5:E12] = C
Next

以此為例,以下再提供兩種For迴圈寫法
(應該說是Range/Cells的其他寫法)

C = [C5:C12]
For i = 5 To 12
Sheets(Range("C" & i).Value).[E5:E12] = C
Next

C = [C5:C12]
For i = 5 To 12
Sheets(Cells(i, 3).Value).[E5:E12] = C
Next
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?