当我在一个工作表上使用此代码时,为什么会收到“运行时错误‘1004’”,而在另一个工作表上却没有?

问题描述 投票:0回答:1

首先,这是我的两个代码:

Private Sub UserForm_Initialize()

Dim ws As Worksheet
Dim rng As Range
Dim LRow As Long
Dim Myarray As Variant

 Set ws = ThisWorkbook.Sheets(Mark1.LEADLISTDROPDOWN.Value)
 
 With ws
 LRow = .Range("BJ" & .Rows.Count).End(xlUp).Row
 
 Set rng = ws.Range("A:KH" & LRow)
 
 PopoutLeadListBox.RowSource = rng.Address(External:=True)
 
 End With
 
End Sub
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim rng As Range
Dim LRow As Long
Dim Myarray As Variant

 Set ws = ThisWorkbook.Sheets(SalesForm.BHSDLEADLISTSCOMBOBOXLF.Value)
 
 With ws
 LRow = .Range("S" & .Rows.Count).End(xlUp).Row
 
 Set rng = ws.Range("H2:Y" & LRow)
 
 PopoutLeadListBox.RowSource = rng.Address(External:=True)
 
 End With
 
End Sub

第一个是弹出错误代码,说对象工作表的方法范围失败。第二个工作得很好。据我所知,唯一不同的是范围的大小和选择的对象。

我不久前在网上的帮助下写了这篇文章,但我在回溯我的步骤时遇到了困难。有什么想法吗?

excel vba userform error-code
1个回答
1
投票

您在这行输入错误

Set rng = ws.Range("A:KH" & LRow)

以这种方式定义范围 Range("Ax:KH" & LRow)

其中 x 是范围左上角单元格的行号。

© www.soinside.com 2019 - 2024. All rights reserved.