我是一個相對無知的程序員,很抱歉。應用程序定義或對象定義的錯誤,血腥的奧祕
Excel 2010 UserForm命令按鈕的下列代碼返回應用程序定義或對象定義的錯誤。
Private Sub CommandButton1_Click()
Dim y, vfx, sapx, prx As String
y = Sheets(ComboBox1.Value).Range("B:B").Find(ComboBox2.Value).Row
vfx = Sheets(ComboBox1.Value).Range("1:1").Find("Vendor No").Column
sapx = Sheets(ComboBox1.Value).Range("1:1").Find("SAP Number").Column
prx = Sheets(ComboBox1.Value).Range("1:1").Find("Amey Price").Column
Lrow = Sheets("Macropage").Range("B:B")(Rows.Count).End(xlUp).Row
Userow = Lrow + 1
Sheets("Macropage").Range("A" & Userow) = ComboBox1.Value
Sheets("Macropage").Range("B" & Userow) = ComboBox2.Value
Sheets("Macropage").Range("C" & Userow) = Sheets(ComboBox1.Value).Cells(y, vfx).Value
Sheets("Macropage").Range("D" & Userow) = Sheets(ComboBox1.Value).Cells(y, sapx).Value
Sheets("Macropage").Range("E" & Userow) = Sheets(ComboBox1.Value).Cells(y, prx).Value
Sheets("Macropage").Range("A3:E" & Userow).Columns.AutoFit
Unload UserForm1
End Sub
導致錯誤的代碼看起來是:Sheets(ComboBox1.Value).Cells(y, prx).Value
我通過在一個MsgBox粘它驗證。
prx
引用的列唯一不同的地方是它包含小數而不是一些文本。我不明白爲什麼這應該是一個問題,但。
任何感興趣的信息,即使它只是關於應用程序定義或對象定義的錯誤的性質。從谷歌搜索它似乎只是意味着即使編譯器認爲它是好的,Excel執行腳本時仍有問題。
你確定'prx'有一個值嗎?我會在該線上放置一個斷點,並查看它在本地窗口中的價值。 –
而且,如果它沒有價值,我的猜測是沒有列「Amey價格」。 –
'Dim y,vfx,sapx,prx As String' - 與您的問題無關,但您意識到只有'prx'實際上被聲明爲'String'的權利?其他人被隱式聲明爲「變體」。 –