我是VBA的新手,需要寫一些簡單的VBA代碼來進行一些計算。
我有一個名為fKitsel的用戶表單,它讓用戶從6個選項中選擇一個,并將所選選項的數量作為Public Kit As Integer變數寫入作業表Лист2(Variables)(我需要在我的組織中使用烏克蘭excel的本地化)。
當用戶按下cbsubmit命令按鈕時就會發生寫入。
這個子程式看起來像:
Sub cbsubmit_Click()
ActiveWorkbook.Sheet("Лист2").Range("A1").Value = Kit ' error points here.
Лист2.Activate
卸載我。
End Sub.
當我點擊cbsubmit按鈕時,我收到一個 "Subpt超出范圍 "的錯誤,它指向我在代碼塊中評論的那一行。 我不明白我做錯了什么。
uj5u.com熱心網友回復:
你的Userform包含一個名為Kit的Frame控制元件,與Module1模塊中的Kit變數同名,這導致了這一行的混淆:
ThisWorkbook.Worksheets("VarList"/span>).Range("A1"/span>).Value = Kit
因為它也意味著:
ThisWorkbook.Worksheets("VarList") 。 Range("A1").Value = Me.Kit`(其中是框架控制元件)
你可以給每個控制元件/變數起不同的名字(這是一個更好的方法,給你的變數/控制元件起更多的描述性名字,例如:frameKit)
或者明確說明你所指的變數是什么,比如:
ThisWorkbook.Worksheets("VarList"/span>).Range("A1"/span>).Value = Module1.Kit
uj5u.com熱心網友回復:
我無法驗證,因為我無法看到你的作業表,但請仔細檢查你的作業表的名稱。你說它叫"Лист2(Variables)",而你的代碼參考了"Лист2"。這可能是一個問題,你可能參考了一個不存在的單元格。
@edit
謝謝你的檔案。我把變數名稱改為KitID,并在你的表格代碼中增加了幾行。下面是完整的代碼:
Private Sub ob1_Click()
KitID=1
結束 sub
Private Sub ob2_Click()
KitID=2
結束 sub
Private Sub ob3_Click()
KitID=3
結束 sub
Private Sub ob4_Click()
KitID=4
結束 sub
Private Sub Userform_initialize()
ob1.Value = True[/span
結束 sub
Private Sub cbcancel_Click()
ThisWorkbook.Worksheets("MainList").激活
卸載Me。
結束 子
Sub cbsubmit_Click()
ThisWorkbook.Worksheets("VarList").Range("A1") .Value = KitID
ThisWorkbook.Worksheets("VarList").激活
卸載Me。
End Sub
請檢查結果是否是你想要的
。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/307516.html
標籤:
上一篇:展開/收起所有手風琴
