頁: [1]
|
 |
|
作者
|
主題: 如何正確宣告 (閱讀 1580 次)
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4429
|
 |
如何正確宣告
« 於: 2005-09-08, 13:43:07 » |
|
以下這段程式有時能執行有時不能,顯示型態不符合,想是宣告的問題,但一直學不會正確的宣告,請以此例作示範指導,非常感謝! Sub aa() lastrow = 65536 - Application.CountBlank(Columns(1)) + 2 For i = 17 To lastrow j = Application.VLookup(Cells(i, 1), [y], 4, 0) k = Application.Match(j, [x], 0) + 2 Range(Cells(i, k), Cells(i, k + [Time] - 1)).Merge Cells(i, k).Interior.ColorIndex = 48 Cells(i, k) = Cells(i, 1) & "(" & Application.VLookup(Cells(i, 1), [data], 11, 0) & ")" Next i End Sub 註:[y]為一陣列區域的定義名稱:=sheet1!$B$2:$E$12 [x]為=sheet1!$C$14:$AA$14的定義名稱 [time]為一定義計算公式的名稱 []裡面放"x"會變成亂碼?
|
|
|
|
« 最後編輯時間: 2005-09-10, 01:53:55 由 leonchou »
|
已記錄
|
結廬待慧君
|
|
|
wang
高中生
離線
文章: 101
|
set x=sheet1!$C$14:$AA$14的定義名稱 [x].Select 測試正常
|
|
|
|
« 最後編輯時間: 2005-09-10, 01:54:33 由 leonchou »
|
已記錄
|
|
|
|
leonchou
論壇維護群
離線
文章: 1160
|
在VBA使用 VLookup、Match 等函數原本就有找不到資料的風險, 除非另作判斷;而且資料面的問題很難說。
另外比較明顯的不妥是 [Time], Time 是屬於 VBA 保留字,是一個可取得系統時間的函數。 雖然在本例應不會造成問題,但是建議養成好習慣 -- 任何程式碼都應該避免使用保留字做為變數或參照, 你無法預知哪天會因此而出問題。
至於 [ ] 裡面放 x 會變成亂碼, 因為它被論壇程式視為BBC代碼,成了項目符號。 發文章時可在編輯畫面 (不是快速回覆) 的 額外選項... > 選擇 [不使用表情圖] 即可。 已幫二位修正,勿怪。
|
|
|
|
|
已記錄
|
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4429
|
謝謝指導,再請教如何得知vba的保留字?是否所有vba的函數都應作為保留字?
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
leonchou
論壇維護群
離線
文章: 1160
|
所謂VBA保留字是VBA所有語法會用到的字詞,這些字詞包含在 所有程序、宣告、函數、物件、事件、方法、屬性、陳述式、VBA常數... 等等, 而不包括使用者自訂的變數、常數。
有個簡易的方法可以得知某個字是不是VBA保留字 -- 在VBA編輯視窗下,也就是寫程式的時候, 打完一個字,游標離開那一行, 如果這個字變成深藍色(預設值)或變成首字母大寫, 那麼這個字一定是VBA保留字。
VBA常數是例外 (註), 即便是內建常數也不會自動變色,也不一定會變首字母大寫 (xl 除外)。 而且據我所知在VBA help中Excel VBA常數並沒有獨立的列表及說明, 它們的說明往往是附屬在所屬的方法或屬性說明裡面。 例如想知道 xlAutomatic 的意義就要找 Calculation 屬性的說明。 (至於VB常數倒是有獨立的列表說明) 但屬性說明一定有常數的解釋嗎? 也不盡然。 以 Calculation 屬性為例,它只列出可用常數 xlCalculationAutomatic、xlCalculationManual、xlCalculationSemiautomatic 而沒有進一步說明 (PS. Excel2000)。 有些淺顯易懂的常數從字面上就可瞭解,否則也只好碰運氣了吧。 說不定網路上有 Microsoft 的 documentation,或是 找到有列出所有常數說明的書 (機率更小) ...
註: Excel VBA常數以 xl 開頭,如 xlUp, xlDown, xlPart... Word VBA常數以 wd 開頭,如 wdLine, wdFindStop, wdPrintCurrentPage... VB 常數是適用所用VBA環境,如 vbBlue, vbRed, vbLf ...
|
|
|
|
|
已記錄
|
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4429
|
多謝!讓您很辛苦的打了那麼多字。列出的常數有一半我不認識,只好找找說明了。感激感激!
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
|
頁: [1]
|
|
|
|