对象_工作表的方法范围失败的命名范围

Private Sub Submit_Click() Application.ScreenUpdating = False Dim rangeForCode As range, rngLookupRange As range Dim row As Integer, stock As Integer Dim result As Integer Dim drugCodePC As Integer Dim qty As Integer Dim ws As Worksheet drugCodePC = CInt(DrugCode2.Value) qty = CInt(Quantity.Value) 'Populating the drug name Set ws = Worksheets("Drug Record") ws.Select *Set rangeForCode = ws.range("DrugCodeInventory")* row = Application.WorksheetFunction.Match(drugCodePC, rangeForCode, 1) Set rngLookupRange = ws.range("Inventory") stock = Application.WorksheetFunction.VLookup(drugCodePC, rngLookupRange, 3, False) result = stock + qty 'MsgBox (row) ws.Cells(row + 1, 3).Value = result Application.ScreenUpdating = True Unload PurchaseForm End Sub 

这不断抛出错误“对象_工作表失败命名范围的方法范围”。 错误发生在**。 我知道这与命名的范围有关,因为以前,当我写了单元格的范围,即。 “A1:A215”起作用。 我检查了名字范围,它看起来是正确的。 命名的范围名称也是正确的。 我试着先激活工作簿,但错误仍然抛出。

命名的范围是:

 = OFFSET(DrugCodeInventory!$A$2, 0, 0, COUNTA(DrugCodeInventory!$A:$A)-1,1) 

我只想在我的工作表中dynamicselect第一列。

如果你在立即窗口中运行这个工作吗?

 application.Goto Worksheets("Drug Record").range("DrugCodeInventory") 

如果没有运行,则尝试删除命名的范围并创build一个新的范围。

也请尝试明确地限定您的代码的这一部分:

 Dim ws As Excel.Worksheet '<added full qualification here drugCodePC = CInt(DrugCode2.Value) qty = CInt(Quantity.Value) 'Populating the drug name Set ws = Excel.thisworkbook.Worksheets("Drug Record") '<added full qualification here ws.Select *Set rangeForCode = ws.range("DrugCodeInventory")* 

请使用下面的isNameRngExist函数,当名称范围“DrugCodeInventory”存在时,将返回true,然后继续进一步操作。

 Function isNameRngExist(myRng As String) As Boolean On Error Resume Next isNameRngExist = Len(ThisWorkbook.Names(TheName).Name) <> 0 End Function