在组合框中添加项目

时间:2019-10-30 14:45:41

标签: excel vba

我正在尝试从保存在路径“ C:\ Users \ se72497 \ Desktop”中的文件中添加项目,该文件包含在名为“ Departamentos”的工作表的第一列中,我想在组合框中添加一系列值。

我的组合框收到了部门名称。

Private Sub UserForm_Initialize()
        Dim filename As Workbook
        Set filename = Workbooks.Open("C:\Users\se72497\Desktop\Tablas_Macro.xlsx")
        With filename.Sheets("Departamentos")
            dept.List = Range("A2", .Range("A" & Rows.Count).End(xlUp).Value)
        End With
End Sub

我尝试执行此代码,但它返回了运行时错误:

enter image description here

为什么vba向我返回此错误?

2 个答案:

答案 0 :(得分:2)

.Value放在错误的位置。 (或者您可以说括号放在错误的位置)。更正此问题,您可以:

.Range("A2", .Range("A" & Rows.Count).End(xlUp)).Value

在您当前的代码中,.Value是在Range调用内 ,因此您尝试使用单元格的 value ,而不是单元格本身作为第二个参数。

您想要它在外面。

否则,如果最后一个单元格的值为“ foo”,则您的代码等效于

 Range("A2", "foo")

这当然不是您想要的。

答案 1 :(得分:-1)

因此,当您单击pn时,您的组合框数据将被加载,

'先决条件使用变量rstart命名单元格A2

Private Sub UserForm_Initialize()

Dim ws As Worksheet: Set ws = Worksheets("Departamentos")
Dim i As Integer: i = 0
Dim lRow As Long
Dim sAddress As String

On Error GoTo errhandling
If Me.nameofcombobox.Value = vbNullString Then
    MsgBox "Select value to continue!"
Else
    With ws
        lRow = .Range("Departamentos").Rows.Count
        'name the cell a2 as rstart
        Do Until .Range("rStart").Offset(0, i).Value = Me.nameofcombobox.Value
            i = i + 1
        Loop
        sAddress = .Range("rStart").Offset(0, i - 1).Address
        .Range(sAddress & ":" & Left(sAddress, 4) & lRow).Value = .Range(sAddress & ":" & Left(sAddress, 4) & lRow).Value
    End With
End If
On Error GoTo 0

MsgBox "Completed without errors", vbInformation, "Success"

FunctionOutput:     设置ws = Nothing

退出子

处理:      MsgBox“发生以下错误:”&Err.Description,vbCritical,“错误”      恢复功能输出

 End Sub