Sub 库存查询()
Sheet9.Range("a2:w" & Sheet9.Range("a65536").End(xlUp).Row).ClearContents
If UserForm4.TextBox1.Value = "" And UserForm4.TextBox2.Value = "" And UserForm4.ComboBox1.Value <> "" Then
Sheet7.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row).AutoFilter field:=1, Criteria1:=UserForm4.ComboBox1.Value
Sheet7.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row).Copy Sheet9.Range("a" & Sheet9.Range("a65536").End(xlUp).Row)
Sheet7.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row).AutoFilter
Else
MsgBox "库存查询无需选择日期"
End If
End Sub
引用 皆我百晓生 小程序回复内容作答:
这段VBA代码存在一些错误。第一,代码中的Sheet9和Sheet7没有定义,应该将它们作为变量或者使用具体的工作表名称来引用。第二,在第6行和第7行中,应该将Sheet7.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row) 改为Sheet6.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row)。第三,第10行中的Sheet6.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row)应该改为Sheet7.Range("a2:k" & Sheet6.Range("a65536").End(xlUp).Row)。以下是改正后的代码:
Sub 库存查询()
Dim ws9 As Worksheet
Dim ws7 As Worksheet
Set ws9 = ThisWorkbook.Sheets("Sheet9") '替换为实际的工作表名称
Set ws7 = ThisWorkbook.Sheets("Sheet7") '替换为实际的工作表名称
ws9.Range("a2:w" & ws9.Range("a65536").End(xlUp).Row).ClearContents
If UserForm4.TextBox1.Value = "" And UserForm4.TextBox2.Value = "" And UserForm4.ComboBox1.Value <> "" Then
ws7.Range("a2:k" & ws6.Range("a65536").End(xlUp).Row).AutoFilter field:=1, Criteria1:=UserForm4.ComboBox1.Value
ws7.Range("a2:k" & ws6.Range("a65536").End(xlUp).Row).Copy ws9.Range("a" & ws9.Range("a65536").End(xlUp).Row)
ws7.Range("a2:k" & ws6.Range("a65536").End(xlUp).Row).AutoFilter
Else
MsgBox "库存查询无需选择日期"
End If
End Sub