1
所以這段代碼是在Excel 2013中創建的,而且我必須在2003年使用它才能使用它。2013年它工作得很好,當它在2003年它返回「運行時錯誤」 9「下標超出範圍」。如果有人能幫我解決這個問題,我將不勝感激。它出現的問題是與該位數據運行時錯誤「9」下標超出範圍
的
Set wsSheet = Worksheets("Sheet1")
With wsSheet
Set rnData = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
End With"
再次感謝你的幫助。
`Private Sub UserForm_Initialize()
Dim wsSheet As Worksheet
Dim rnData As Range
Dim vaData As Variant
Dim ncData As New VBA.Collection
Dim lnCount As Long
Dim vaItem As Variant
Set wsSheet = Worksheets("Sheet1")
With wsSheet
Set rnData = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
End With
vaData = rnData.Value
On Error Resume Next
For lnCount = 1 To UBound(vaData)
ncData.Add vaData(lnCount, 1), CStr(vaData(lnCount, 1))
Next lnCount
On Error GoTo 0
With ComboBox1
.Clear
For Each vaItem In ncData
.AddItem ncData(vaItem)
Next vaItem
End With
End Sub
Private Sub CommandButton1_Click()
Dim c As Range
With Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row)
Set c = .Find(ComboBox2.Value, LookIn:=xlValues)
c.Activate
ActiveCell.EntireRow.Copy
Sheets("Sheet2").Select
RowCount = Cells(Cells.Rows.Count, "a").End(xlUp).Row
Range("a" & RowCount + 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End With
Sheets("Sheet1").Select
Range("a1").Select
Unload Me
End Sub
Private Sub ComboBox1_Change()
Dim cell As Range
Me.ComboBox2.Clear
For Each cell In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
If cell.Value = Me.ComboBox1 Then
Me.ComboBox2.AddItem (cell.Offset(0, 1).Value)
End If
Next cell
Me.ComboBox2.ListIndex = 0
End Sub`
如果您在該行上發生錯誤,那麼表名稱不正確或錯誤的工作簿處於活動狀態。 – Rory
這是2003年的Excel本地化版本嗎? – LocEngineer
感謝Rory和Sun,將工作表名稱更改爲實際的工作表名稱,並添加了兩個點,現在解決了這個問題......現在,我得到了編譯錯誤,但在將它放在此處之前我會嘗試弄清楚它。感謝您的幫助,我仍在學習。 – cparsons