0
所以我有一個用戶窗體上的listbox1。當用戶單擊列表框中的項目時,我有工作表上的列表框選擇的值填充單元格C20。Excel VBA列表框顯示新選擇後的上一條記錄
Private Sub frmListBox1_Click()
Worksheets("CONTROLSRFDS").Range("C20").Value = frmListBox1.Value
For i = 1 To 53 ' Non Multipage Controls
Me.Controls("Label" & i).Caption = Worksheets("CONTROLSRFDS").Range("RBSLabels").Cells(i, 1).Value
Me.Controls("TextBox" & i).Value = Worksheets("CONTROLSRFDS").Range("RBSOutput").Cells(i, 1).Value
Next i
End Sub
基於該選擇現在在小區C20,工作表將重新計算超過30範圍的數據與基於在小區C20這一個值的公式。 這30個數據範圍被編碼以將其新值傳輸到包含在用戶表單中的標籤標題上。
發生了什麼是窗體將正確初始化,但是一旦爲新選擇選擇了列表框,用戶窗體上的所有值都顯示屬於上一個選擇的值,但是在工作表上公式正在計算正確地說,只是新值並沒有用正確的信息填充用戶表單上的標籤標題。我試圖通過在工作表模塊和表單本身中使用更改事件和單擊事件來解決這個問題,但沒有成功。我無法解決這個問題。每次點擊時,顯示的數據都會顯示上一條記錄。
爲ListBox更改事件代碼:
Private Sub frmListBox1_Change()
If Application.CalculationState = done Then
Worksheets("CONTROLSRFDS").Range("C20").Value = frmListBox1.Value
For i = 1 To 53 ' Non Multipage Controls
Me.Controls("Label" & i).Caption = Worksheets("CONTROLSRFDS").Range("RBSLabels").Cells(i, 1).Value
Me.Controls("TextBox" & i).Value = Worksheets("CONTROLSRFDS").Range("RBSOutput").Cells(i, 1).Value
Next i
ii = 1 'Antenna Labels
For i = 54 To 75
Me.Controls("Label" & i).Caption = Worksheets("CONTROLSRFDS").Range("AntennaLabels").Cells(ii, 1).Value
ii = ii + 1
Next i
End If
End sub
是否有人可以幫助這一點?什麼做錯了?有沒有索引屬性我不參考?先謝謝你!