我有一個命令按鈕單擊事件,保持拋出錯誤91代碼。當我通過代碼時,它會引發錯誤右'後設置findvalue '代碼執行。查看下面的代碼片段。在檢查代碼本身時我無法弄清楚。用戶窗體命令按鈕代碼 - 錯誤91:對象變量或與塊變量未設置
'findvalue'被標註爲範圍對象。 'DataSH'是主數據表以Record ID(B列)列開始的工作表。用戶表單元素在DataSH的數據表中設置爲它們各自的列。
Private Sub cmdEdit_Click()
'declare the variables
Dim findvalue As Range
Dim cNum As Integer
Dim DataSH As Worksheet
'error handling
On Error GoTo errHandler:
'hold in memory and stop screen flicker
Application.ScreenUpdating = False
Set DataSH = Sheet1
單擊事件子程序,該代碼段取自是設置來更新相應的列上的行中所選擇的記錄ID在DataSH基於在那些UF元素的值的數據(行號的標識符)(即更改或刪除的值)。重點是更新DataSH中的主數據表,並對UF元素(文本框和組合框)中所做的任何更改進行更新。
Set findvalue = DataSH.Range("B:B"). _
Find(What:=Me.tbRecID.Value, LookIn:=xlValues, LookAt:=xlWhole)
'update the values
findvalue = tbRecID.Value
findvalue.Offset(0, 1) = tbRecDate.Value
findvalue.Offset(0, 2) = cmbRecLoc.Value
findvalue.Offset(0, 3) = cmbRecCust.Value
findvalue.Offset(0, 4) = tbRecAmt.Value
findvalue.Offset(0, 5) = cmbRecComm.Value
findvalue.Offset(0, 6) = cmbRecPrin.Value
findvalue.Offset(0, 7) = tbRecTerr.Value
findvalue.Offset(0, 8) = tbRecRep.Value
設置findvalue使用SET語句,然後嘗試只分配給它的另一個值。 – Rdster
@Rdster,但不應該引起任何錯誤,因爲它只是確認當前的「findvalue」值 – user3598756
@Rdster在列表框中雙擊一個記錄(一個單獨的子例程)時,將填充文本框和組合框元素來自DataSH上的數據表)在同一個UF上。 'findvalue'被設置爲在該事件時填充在tbRecID文本框元素中的記錄ID。其餘的代碼應該使用'findvalue'對象作爲參考點,將UF元素(即那些已更改)的值返回DataSH表中的專用字段(以及擴展名列表框)。至少我認爲我解釋正確。 –