复选框将值动态插入特定单元格

Chechbox inserting value into specific cell dynamically

我发现这段代码用于从 Excel 用户表单中的复选框插入值:

Dim rw As Integer
Dim ws As Worksheet 
Set ws = Worksheets("Sheet1")
If Checkbox1.Value = True Then
ws.Cells(rw, 2).Value = "X" 
Else
ws.Cells(rw, 2).Value = "" 
End If 

效果很好!但现在我需要在另一个用户窗体中使用它,我从 ComboBox 中查找一个值,其中与 ComboBox 中特定数字相关的信息将显示在用户窗体中。用户可以将新信息保存到这个特定号码,这里我不能只使用上面显示的代码吗?

Private Sub pSave()

Dim rw As Integer
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

If blnSearch = True Then

    'Unlocking the sheet
    Sheets("Sheet1").Unprotect Password:="*********"

    totRows = Worksheets("Sheet1").Range("A3").CurrentRegion.Rows.Count

    For i = 2 To totRows
        If Trim(Worksheets("Sheet1").Cells(i, 1)) = Trim(ComboBox_ID.Text) Then
            Worksheets("Sheet1").Cells(i, 1).Value = TextBox_ID.Text
            'Worksheets("Sheet1").Cells(i, 2).Value = CheckBox_Eldesign.Value

我发现插入复选框的方式与用户窗体中的其他框相同,但我不知道如何确定复选框将在单元格中写入的内容,就像我可以使用其他代码一样?

预先感谢您的宝贵时间和帮助!

多种解决方法:

  • 你已有的方式(你注释掉的那一行)很好。然后,您可以在 excel 中使用简单的条件格式。如果单元格值为真,则应显示 X。如果为假,则应显示空单元格。

  • 重复使用与您提供的上面代码片段相同的代码。而不是注释掉的行,只需插入 IfEnd If 之间的部分。另外,不要忘记多行 Then 语句要求您以 End If.

    结尾
      If Trim(...) = Trim(...) Then
    
      Worksheets(...) = TextBox_ID.Text
    
      With Worksheets(...).Cells(i,2)
    
          If CheckBox_Eldesign.Value Then
                 .Value = “X”
          Else
                 .Value = “”
          End if
    
      End With
    
      End If
    

(我无法根据我的 phone 进行正确的格式化,对此深表歉意...)