簡體   English   中英

如何使用Excel VBA將數據從工作簿獲取到用戶表單Combox和文本框中?

[英]How to Get Data from Workbook into User Form Combox and Text Boxes with Excel VBA?

我正在嘗試將其他Excel工作簿中的數據導入Userform。 因此,從下拉列表中選擇時,用戶會自動填充文本框。

以下是我嘗試但顯示錯誤的代碼。 請幫助我解決此問題。

Private Sub cmbls_DropButtonClick()
Dim i As Long, LastRow As Long
Dim w As Workbook
 Set w = Workbooks.Open("C:\Users\Desktop\Inputs for Gate 1.xlsx")
 Set ssheet = w.Worksheets("Sheet1")
 'showing error in the below line LastRow'
 LastRow = Sheets(“Sheet1”).Range(“A” & Rows.Count).End(xlUp).Row  
 If Me.cmbls.ListCount = 0 Then
 For i = 2 To LastRow
 Me.cmbls.AddItem Sheets(“Sheet1”).Cells(i, “A”).Value
 Next i
 End If
End Sub

Private Sub cmbls_Change()
Dim i As Long, LastRow As Long
Dim w As Workbook
 Set w = Workbooks.Open("C:\Users\Inputs for Gate 1.xlsx")
 Set ssheet = w.Worksheets("Sheet1")
 LastRow = Sheets(“Sheet1”).Range(“A” & Rows.Count).End(xlUp).Row
 For i = 2 To LastRow
 If Sheets(“Sheet1”).Cells(i, “A”).Value = (Me.cmbls) Or _
 Sheets(“Sheet1”).Cells(i, “A”).Value = Val(Me.cmbls) Then
 Me.TextBox1 = Sheets(“Sheet1”).Cells(i, “B”).Value
 End If
 Next
End Sub

該錯誤是由於Smart Quotes包裝了工作表和范圍引用而引起的。
刪除所有Smart QuotesCTRL + F& Find and Replace All正確的報價標記交換(“)(”),(“)。

請注意下面使用的三個引號之間的細微差別。 VBA要求第3名

“ <>” <>“


這是其他一些更新。 您沒有聲明工作表引用,而是需要限定所有對象。 現在可以編譯,但是可能仍然會產生Run Time Errors或存在Logic Errors

Option Explicit

Private Sub cmbls_DropButtonClick()

Dim WB As Workbook: Set WB = Workbooks.Open("C:\Users\Desktop\Inputs for Gate 1.xlsx")
Dim WS As Worksheet: Set WS = WB.Worksheets("Sheet1")
Dim i As Long

If Me.cmbls.ListCount = 0 Then
    For i = 2 To WS.Range("A" & WS.Rows.Count).End(xlUp).Row
        Me.cmbls.AddItem Sheets("Sheet1").Cells(i, "A").Value
    Next i
End If

End Sub

Private Sub cmbls_Change()

Dim WB As Workbook: Set WB = Workbooks.Open("C:\Users\Inputs for Gate 1.xlsx")
Dim WS As Worksheet: Set WS = WB.Worksheets("Sheet1")
Dim i As Long

For i = 2 To WS.Range("A" & WS.Rows.Count).End(xlUp).Row
    If WS.Cells(i, "A").Value = (Me.cmbls) Or WS.Cells(i, "A").Value = Val(Me.cmbls) Then
        Me.TextBox1 = WS.Cells(i, "B").Value
    End If
Next i

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM