如果find匹配,请更改单元格值

我有一个工作表,有一个文本框将被分配给一个macros的button。 在此工作簿中还有另一个工作表,用于将主数据保存在表中。 该文本框将有一个工作#。 我想要做的是在主表中查找job#列(列B /命名范围:“JobCol_Master”)中的作业#,如果find匹配项,则在该行中,validation基于在列D中是什么。如果为true,则更改该行中特定列的单元格值。

我在Range(Cells(cell, 11)).Value = "Test"上得到了一个types不匹配错误, Range(Cells(cell, 11)).Value = "Test" 。 当值不匹配时,我也会遇到错误。

我很欣赏任何人都可以给我的指导。

 Option Explicit Sub IDCloseJob() Dim ws As Worksheet Dim MasterData As Range Dim sourceID As Range Dim cell As Range, row As Range, JobCol As Range Dim Txt As String Txt = ThisWorkbook.Worksheets("ID").TextBoxID.Text Set MasterData = ThisWorkbook.Worksheets("Jobs").Range("MasterData") If Txt <> "" Then With MasterData For Each cell In .Range("JobCol_Master") 'If job# matches textbox and if job# has value equal to "ID" in Column D then... If cell.Text = Txt Then Cells(cell.row, 11).Value = "Test" Else MsgBox "Job# not found." End If Next cell End With End If End Sub 

更新的代码:

 Sub IDCloseJob() Dim MasterData As Range Dim sourceID As Range Dim cell As Range, row As Range, JobCol As Range Dim Txt As String Txt = ThisWorkbook.Worksheets("ID").TextBoxID.Text Set MasterData = ThisWorkbook.Worksheets("Jobs").Range("MasterData") If Txt <> "" Then With MasterData For Each cell In .Range("JobCol_Master") 'If job# matches textbox and if job# has value equal to "ID" in Column D then... If cell.Text = Txt Then Cells(cell.row, 11).Value = "Test" Else MsgBox "Job not found." Exit Sub End If Next cell End With End If End Sub 

上面的代码如果为true,则不会完成真正的语句Cells(cell.row, 11).Value = "Test" 。 它popupMsgBox然后退出子。 不知道为什么…代码看起来不错。 如果我把这个虚假的陈述排除在外,就完成了我的真实陈述。

更改

  Range(Cells(cell, 11)).Value = "Test" 

  .Cells(cell.Row,11).Value = "Test"