返回列表 上一主題 發帖

[發問] EXCEL VBA 的問題

回復 9# lpk187

想就教,你的第3行的語法,是否可以稍做說明一下
謝謝

TOP

回復 11# idnoidno

是這一列嗎?
RngRow = 工作表1.Columns(Rng.Column).Find("*", , , , , xlPrevious).Row '尋找改欄的最後一個儲存格
其中,工作表1.Columns(Rng.Column)是尋找的範圍所對應的欄,我以動態循環來改變它尋找的範圍,以循環的第一次迴圈來說,它會搜尋"甲"那一欄最後有"值"的儲存格來傳回所對應的列號Row,我以萬用字元 * 來代表任何字串,xlPrevious是由下往上找,

  以下是擷取Excel說明Range.Find的說明給參考!
Excel 開發人員參考資料
Range.Find 方法
會尋找範圍中的特定資訊。
語法

運算式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

運算式   代表 Range 物件的變數。

參數

名稱 必要/選用 資料類型 描述
What 必要 Variant 要搜尋的資料。可以為字串或任何 Microsoft Excel 資料類型。
After 選用 Variant 指定儲存格,搜尋將會從這個儲存格之後開始。這個儲存格對應於從使用者介面執行搜尋時的作用儲存格位置。注意,After 必須是範圍中的單一儲存格。請記住搜尋是從這個儲存格之後開始,因此必須等到該方法循環回到指定的儲存格時,才會搜尋其內容。如果沒有指定這個引數,則搜尋會從範圍左上角的儲存格之後開始。
LookIn 選用 Variant 資訊的類型。
LookAt 選用 Variant 可以為下列其中一個 XlLookAt 常數:xlWhole 或 xlPart。
SearchOrder 選用 Variant 可以為下列其中一個 XlSearchOrder 常數:xlByRows 或 xlByColumns。
SearchDirection 選用 XlSearchDirection 搜尋方向。
MatchCase 選用 Variant 如果為 True,則搜尋時會將大小寫視為相異。預設值為 False。
MatchByte 選用 Variant 只有當您已選取或安裝雙位元組語言支援時,才能使用。如果為 True,則雙位元組字元只能符合雙位元組字元。如果為 False,則雙位元組字元可符合對應的單位元組字元。
SearchFormat 選用 Variant 搜尋格式。

TOP

回復 11# idnoidno

我也只是一個初學者。有空時我會來這討論區看看其他大大的程式的做法。順便以其他人的問題來當成作業來作,看看自己學了多少(其實有很多人問題看都看不懂),所以我也會等其他大大的答案啦!所以大家一起研究

TOP

謝謝,請教,VBA的畫面中,您有使用即時監看視窗來輔助您的程序直行嗎

TOP

For Each Rng In 工作表1.Range("B1", 工作表1.Cells(1, Columns.Count).End(xlToLeft).Address) '第一列"動態"讀取做循環
這一列中用法,您可否再予以指導說明一下
另外動態讀取做循環的中文意思有點不清楚
真的感謝您可以回復,謝謝

TOP

回復 15# idnoidno


For Each Rng In 工作表1.Range("B1", 工作表1.Cells(1, Columns.Count).End(xlToLeft).Address) '第一列"動態"讀取做循環

所謂的動態是指,當你儲存格有"增減"時仍可以依你的增減來做讀取,例如:只有甲乙丙3欄它就只做3次循環,若增加2欄則可以做5次 循環
上面 Rng 是儲存格(Range)的變數,
工作表1.Range("B1", 工作表1.Cells(1, Columns.Count).End(xlToLeft).Address) ,則是範圍意思是後B1這一欄開始到,Columns.Count是所有欄的數目,
End(xlToLeft).Address是從最後的儲存格尋找回來遇到的第一個有值的儲存格位址

還有當運行程序時剛開始最好用"F8"來一行一行看,大部份我只有用"區域變數視窗"監看變化

TOP

謝謝您,您的儲存格變數不用宣告嗎?還是一般初學就先省掉呢

TOP

回復 17# idnoidno


    在For Each Rng 這個變數不用宣告
我上面寫的好像有點難懂,他原來可以像下面這樣寫
For Each Rng in Range("B1:D1")    ' 其中Range("B1:D1") 是迴圈的範圍
        ...
        ...
Next  
你可以多參考VBA的說明

TOP

lpk187大大,按您的回覆,您也是會去查詢F1查詢說明去看使用的用法嗎
還是至少您是已經知道有這樣的一個函數,會用後然後再去按要解決的例子再去查是不是可以合適解決的嗎

TOP

回復 19# idnoidno


    我會去看說明,有時是有會想法然後去查關鍵看看(不一定查得到)甚至上網找,方式有很多
不過說明若查得到,它的範例也是學習的好方法

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題