根据现有数据插入评论

时间:2017-06-26 10:03:28

标签: excel vba userform

我的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。有谁知道,有什么可能是错的?

提前致谢!

1 个答案:

答案 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)
' ^^^^^                     ^^^^^