我的VBA代码有点问题。我创建了一个userform,它具有以下内容: Combobox1是Sku号码 Combobox2是测试号 Combobox3是测试结果 文本框是Comment_To_Result。
'Inserts comments og test result
Dim iRow, iCol
With ThisWorkbook.Worksheets("Data sheet")
iCol = Application.Match(CLng(ComboBox2.Value), .Columns("Q"), 0)
iCol = Application.Match(CLng(ComboBox1.Value), .Columns("A"), 0)
' If IsError(iRow) Then MsgBox "SKU not found": Exit Sub
' If IsError(iCol) Then MsgBox "Test number not found": Exit Sub
'Add test result/next step and comment
.Cells(iCol, 30).Value = Me.ComboBox3.Value
.Cells(iCol, 30 + 1).Value = Me.Comments_To_Result.Value
End With
我希望代码能够找到sku编号和测试编号,并在此基础上插入测试结果并在同一行注释。 (SKU和测试编号已在表格中) 当测试编号为1时,下面的代码工作正常,但是当我尝试将测试编号更改为例如2或3时,列代码是debuggen。有谁知道,有什么可能是错的?
提前致谢!
答案 0 :(得分:0)
无论Test number
列上的搜索结果如何,您都在相同的列(30和31)中写入结果。你可能想要这个:
Dim iRow, iCol
With ThisWorkbook.Worksheets("Data sheet")
iRow = Application.Match(CLng(ComboBox1.Value), .Columns("A"), 0)
iCol = Application.Match(CLng(ComboBox2.Value), .Rows(17), 0)
If IsError(iRow) Then MsgBox "SKU not found": Exit Sub
If IsError(iCol) Then MsgBox "Test number not found": Exit Sub
'Add test result/next step and comment
.Cells(iRow, iCol).Value = Me.ComboBox3.Value
.Cells(iRow, iCol+1).Value = Me.Comments_To_Result.Value
End With
p.s。:搜索搜索到的项目是数字(整数),我在工作表中搜索之前将组合的值转换为数字:
CLng(ComboBox1.Value) and CLng(ComboBox2.Value)
' ^^^^^ ^^^^^