在我的机器配置器中,我有以下代码,当我在与ComboBox2相同的工作表中获得机器的所有数据时工作正常,但是现在我重新组织了数据并将它们分成10个不同的工作表。这意味着一个工作表包含每个machinemodell的项目。
现在,我的问题是这样,我如何调整下面的代码,以便它在所有10张纸中的AG列中进行搜索和匹配,而不仅仅是当前的纸张?
我尝试使用IF语句和Case语句,但它们根本不起作用。
欢迎任何提示:)
Private Sub ComboBox2_Change()
Dim vr%
vr = 0
On Error Resume Next
vr = WorksheetFunction.Match(ComboBox2.Value, Columns("AG"), 0)
On Error GoTo 0
If vr = 0 Then Exit Sub
If ComboBox2.Value = "Velg utstyr her" Then Exit Sub
Range("AE" & vr & ":AM" & vr).Copy Destination:=Range("C91").End(xlUp).Offset(1, 0)
End Sub
更新1 :(尝试循环使用工作表但不工作)
Private Sub ComboBox2_Change()
Dim Current As Worksheet
Dim vr%
For Each Current In Worksheets
vr = 0
On Error Resume Next
vr = WorksheetFunction.Match(ComboBox2.Value, Columns("AG"), 0)
On Error GoTo 0
If vr = 0 Then Exit Sub
If ComboBox2.Value = "Velg utstyr her" Then Exit Sub
Range("AE" & vr & ":AM" & vr).Copy Destination:=Sheets("Sheet1").Range("C91").End(xlUp).Offset(1, 0)
Next
End Sub
答案 0 :(得分:0)
未测试:
Private Sub ComboBox2_Change()
Dim sht As Worksheet
Dim v
If ComboBox2.Value = "Velg utstyr her" Then Exit Sub
For Each sht In ThisWorkbook.Worksheets
v = Application.Match(ComboBox2.Value, sht.Range("AG:AG"), 0)
If Not IsError(v) Then
sht.range("AE" & v & ":AM" & v).Copy _
Activesheet.Range("C91").End(xlUp).Offset(1, 0)
Exit For 'if you only expect one hit
End If
Next
End Sub