如果在用户窗体上选中了复选框,如何更改单元格中显示的值?
If a checkbox is checked on a userform, how do I change the value shown in a cell?
我正在尝试为 VBA 中的用户窗体编写代码,该代码接受复选框的输入并将值推送到值为 "Yes/No" 而不是 TRUE/FALSE 的工作表。此用户表单旨在能够 运行 多次并添加到工作表中的新行,而不是每次只更改一个单元格值。
我尝试创建一个字符串变量,如果值为 TRUE,则字符串将为 "Yes",并将 cbProd.Value 更改为 "Yes" 而不是 TRUE。对于 FALSE 也是如此。不知道是我做错了,还是我处理的不对。
Private Sub cbProd_Click()
Dim cbProdcut As String
If cbProd.Value = True Then
cbProduct = "Yes"
cbProd.Value = cbProduct
Else
cbProduct = "No"
cbProd.Value = cbProduct
End If
End Sub
Private Sub InsertRow()
With Sheet1
' Get the current row
Dim i As Long
Dim curRow As Long
If .Range("A4") = "" Then
curRow = 4
Else
curRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
End If
' Add item to row
.Cells(curRow, 6) = cbProd.Value
End With
End Sub
我希望单元格中的输出为 "Yes",只是输出为空白。如果我不将 cbProd.Value 更改为新的字符串值,它至少会打印 TRUE/FALSE。更改值后它不打印任何内容。
您不能将复选框值更改为布尔值以外的值,请尝试更改它的标签 属性 然后在您的 InsertRow 子
中读回
即
If cbProd.Value = True Then cbProd.Tag = "Yes" Else cbProd.Tag = "No"
然后像这样阅读
.Cells(curRow, 6) = cbProd.Tag
我正在尝试为 VBA 中的用户窗体编写代码,该代码接受复选框的输入并将值推送到值为 "Yes/No" 而不是 TRUE/FALSE 的工作表。此用户表单旨在能够 运行 多次并添加到工作表中的新行,而不是每次只更改一个单元格值。
我尝试创建一个字符串变量,如果值为 TRUE,则字符串将为 "Yes",并将 cbProd.Value 更改为 "Yes" 而不是 TRUE。对于 FALSE 也是如此。不知道是我做错了,还是我处理的不对。
Private Sub cbProd_Click()
Dim cbProdcut As String
If cbProd.Value = True Then
cbProduct = "Yes"
cbProd.Value = cbProduct
Else
cbProduct = "No"
cbProd.Value = cbProduct
End If
End Sub
Private Sub InsertRow()
With Sheet1
' Get the current row
Dim i As Long
Dim curRow As Long
If .Range("A4") = "" Then
curRow = 4
Else
curRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
End If
' Add item to row
.Cells(curRow, 6) = cbProd.Value
End With
End Sub
我希望单元格中的输出为 "Yes",只是输出为空白。如果我不将 cbProd.Value 更改为新的字符串值,它至少会打印 TRUE/FALSE。更改值后它不打印任何内容。
您不能将复选框值更改为布尔值以外的值,请尝试更改它的标签 属性 然后在您的 InsertRow 子
中读回即
If cbProd.Value = True Then cbProd.Tag = "Yes" Else cbProd.Tag = "No"
然后像这样阅读
.Cells(curRow, 6) = cbProd.Tag