我发现以下代码可用于从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
我发现仅以与用户窗体中其他框相同的方式插入复选框即可工作,但是我无法弄清楚如何确定复选框将如何用其他代码写入单元格中?
在此先感谢您的时间和帮助!
答案 0 :(得分:0)
多种解决方法:
您已有的方式(注释行)很好。然后,您可以在excel中使用简单的条件格式。如果单元格值为true,则应显示X。如果值为false,则应显示为空单元格。
重复使用与您提供的上部代码段相同的代码。代替注释行,只需在If
和End If
之间插入部分即可。另外,不要忘记多行Then
语句要求您以结束条件结尾。
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
(我无法通过手机进行正确的格式化,对此表示歉意...)