[算表] 如何使用Excel VBA設定變數在全區域都能使用??

看板Office作者 (安安小成)時間16年前 (2010/02/06 19:46), 編輯推噓0(0022)
留言22則, 2人參與, 最新討論串1/1
軟體:Excel 版本:2003 我有用 Excel VBA 寫一個連接 Access 資料庫的程式 因為我裡面使用五個 UserForm 來寫 目前是每一個 UserForm 裡面都各別重複寫資料庫的來源 但是我想如果萬一資料庫位址有更換的話 那我就給每一個 UserForm 裡的資料庫位址都要改 如果有漏改到的就會很麻煩 所以想請教 如何在 模組 裡或是使用其他方法 要怎樣宣告一個變數能在整個 Excel 的 UserFrom 裡都能使用 我把算用這個變數存放資料庫位址 這樣子只要位址有更換我只要更改這個變數就好了~~ 請問各位高手們~~ 有沒有辦法辦到宣告一個變數可以在全 UserForm 內都能使用呢?? 謝謝~~ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.81.235.208

02/06 20:51, , 1F
public
02/06 20:51, 1F

02/06 21:54, , 2F
請問用 public宣告是要放在哪裡宣告才能全部都能用??
02/06 21:54, 2F

02/06 21:58, , 3F
活頁簿 一般 宣告
02/06 21:58, 3F

02/06 22:08, , 4F
請問您說的活頁簿是指在Excel物件-sheet1(**)內嗎??
02/06 22:08, 4F

02/06 22:08, , 5F
VB編輯環境中
02/06 22:08, 5F

02/06 22:08, , 6F
public test as string 可是 test = cells(1,1) 會出錯??
02/06 22:08, 6F

02/06 22:11, , 7F
錯誤訊息出現什麼?
02/06 22:11, 7F

02/06 22:16, , 8F
我寫在模組內 public 宣告後接著就打 test = cells(1,1)
02/06 22:16, 8F

02/06 22:16, , 9F
出現錯誤 編輯錯誤不正確的外部程序??
02/06 22:16, 9F

02/06 22:17, , 10F
是我方法用錯了還是寫錯位置??我希望當啟動VBA時就能宣告完
02/06 22:17, 10F

02/06 22:19, , 11F
Visual Basic編輯器,專案視窗中選ThisWorkbook
02/06 22:19, 11F

02/06 22:20, , 12F
程式編輯區中左邊的ComboBox選「(一般)」
02/06 22:20, 12F

02/06 22:29, , 13F
我在 ThisWorkbook 左上方選單先選擇 一般,然後打上
02/06 22:29, 13F

02/06 22:30, , 14F
Public test as String,接著寫入數值 test = Cells(1,1)
02/06 22:30, 14F

02/06 22:30, , 15F
然後在 模組 裡面設有 name = right (test,3)...
02/06 22:30, 15F

02/06 22:31, , 16F
在Run時,在test=Cells(1,1)出現編譯錯誤:不正常的外程序??
02/06 22:31, 16F

02/06 22:31, , 17F
請問是哪裡還有問題呢??
02/06 22:31, 17F

02/06 22:35, , 18F
(一般)只能宣告變數 不能將值指派給變數
02/06 22:35, 18F

02/06 22:38, , 19F
如果要一開啟就給值,可以在Workbook中的Open()處理
02/06 22:38, 19F

02/06 22:54, , 20F
請問我的變數在第3工作表,如果在Open()內將值指派給變數
02/06 22:54, 20F

02/06 22:55, , 21F
這樣 test=Worksheets(3).Cells(19, 4) 打抓得到嗎?
02/06 22:55, 21F

02/06 22:55, , 22F
因為我用中斷方式查看發現 test 沒有我在欄位上的值??
02/06 22:55, 22F
文章代碼(AID): #1BRLQM8A (Office)
文章代碼(AID): #1BRLQM8A (Office)