MaverickRay 發表於 19-4-8 13:44

VBA找到某個儲存格的位址後,如何利用程序來選取整欄?

例如:註:j 為迴圈的變數
用於搜尋文字,然後找到 cells(1,j) 為我要的欄位後,我想用VBA的語法將整個 目前的儲存格之 整欄 都選取起來..

那這語法要怎麼寫呢?
原先應該是要用 Range("j:j").select
但這只是會跑到 J 欄,而不是變數 j 所在的儲存格的那實際欄位了
麻煩高手幫幫忙~~感謝感謝~~


rico.yen 發表於 19-5-6 21:16

    工作表1.Cells.Columns(工作表1.Cells(1, intColumn).Column).Select

mick 發表於 19-4-9 15:13

for j = 1 to 10
   debug.print sheets("工作表1").cells(j,"A")
next

pierrebox 發表於 19-4-12 13:28

如果是選欄,用ActiveSheet.columns(j).select 即可

MaverickRay 發表於 19-4-13 20:05

pierrebox 發表於 19-4-12 13:28
如果是選欄,用ActiveSheet.columns(j).select 即可

先謝謝您的回覆,另想請教是不是只要在語法前面多加個activesheet
這樣縱始我要操作的工作表不是使用中時,一樣可以不出錯?
例如,我先前未用sheets(1).select
結果在工作表未被使用、啟動、選取時,就會出現錯誤
然後都錯在columns這裡
雖然我已從另一個大大那得知..但還是想多確認一下..不管如何都說聲謝謝

pierrebox 發表於 19-4-15 22:45

MaverickRay 發表於 19-4-13 20:05
先謝謝您的回覆,另想請教是不是只要在語法前面多加個activesheet
這樣縱始我要操作的工作表不是使用中時 ...

activesheet是指在作用中的工作表,如果程式在跑時,轉到其他工作表,那就不行了。
所以你可以指定工作表名稱給它,例如 Worksheets("工作表1").Range("$A1:D4")
有時如果開了好幾個活頁簿,那最好再加:
ThisWorkbook.Worksheets("工作表1").Range("$A1:D4")
這樣就算vba在執行時,切到其他活頁簿也不會有問題。

MaverickRay 發表於 19-4-15 23:35

pierrebox 發表於 19-4-15 22:45
activesheet是指在作用中的工作表,如果程式在跑時,轉到其他工作表,那就不行了。
所以你可 ...

對了,再順道請教你一下ThisWorkbook.Worksheets("工作表1").Range("$A1:D4")
這裡的ThisWorkbook是只要照打即可.
還是說要根據實際的工作簿名稱來打?!
例如若我的工作簿名為ABC
工作表為測試
範圍如上..
那我是要打成ThisWorkbook.Worksheets("測試").Range("$A1:D4")
還是要改成 ABC.Worksheets("測試").Range("$A1:D4")
不過後者的語法感覺怪怪的..

pierrebox 發表於 19-4-16 16:55

MaverickRay 發表於 19-4-15 23:35
對了,再順道請教你一下ThisWorkbook.Worksheets("工作表1").Range("$A1:D4")
這裡的ThisWorkbook是只要 ...

ThisWorkbook是指目前vba所在的活頁簿,不用另外指定活頁簿名稱。
當你一次開很多個活頁簿檔案時,這樣指定就不會出錯。

MaverickRay 發表於 19-4-18 02:05

pierrebox 發表於 19-4-16 16:55
ThisWorkbook是指目前vba所在的活頁簿,不用另外指定活頁簿名稱。
當你一次開很多個活頁簿檔案時,這樣指 ...

再次說聲謝謝你哦,因為這幾天作息有夠不正常,外加跑去聽一些股票投資的課,所以沒辦法常在電腦前,很感謝你的詳解,我會找時間連同將你的做法與上面熱心網友的回覆等一塊做測試,到時若有疑問,望你們還不吝多方指教...
謝謝你們...{:4_127:}

moremore 發表於 19-4-20 09:14

感謝熱心的分享學習中..

MaverickRay 發表於 19-5-2 15:44

..................
頁: [1]
查看完整版本: VBA找到某個儲存格的位址後,如何利用程序來選取整欄?