Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
激活用户表单中从Excel工作表发送的复选框值_Excel_Vba - Fatal编程技术网

激活用户表单中从Excel工作表发送的复选框值

激活用户表单中从Excel工作表发送的复选框值,excel,vba,Excel,Vba,从一段时间以来,我一直在努力使这项工作,但尽管我彻底的互联网搜索的答案一直在逃避我。 我在VBA Excel中用一些文本框和复选框制作了一个用户表单。这些值将发送到excel文件中的工作表中。复选框表示类别,因此可以选择多个选项。该值在发送到工作表之前被转换为true=“x”和false=”“ If userForm.checkbox1.Value = True Then ws.Rows.Cells(row, 9).Value = "X" Else ws.Rows.Cells(r

从一段时间以来,我一直在努力使这项工作,但尽管我彻底的互联网搜索的答案一直在逃避我。 我在VBA Excel中用一些文本框和复选框制作了一个用户表单。这些值将发送到excel文件中的工作表中。复选框表示类别,因此可以选择多个选项。该值在发送到工作表之前被转换为true=“x”和false=”“

If userForm.checkbox1.Value = True Then
    ws.Rows.Cells(row, 9).Value = "X"
Else
    ws.Rows.Cells(row, 9).Value = ""
End If
可以使用几乎相同的用户表单检索和编辑工作表中的信息。 此表单有一个行选择框,通过该框可以调用所需的行,并且相应的数据填充userform。“x”被翻译回如下:

If ws1.Rows.Cells(row, 9).Value = "X" Then
    userFormedit.checkbox1.Value = True
Else
    userFormedit.checkbox1.Value = False
End If
问题是所选复选框显示的是所需值,但为灰色。 将信息发送回工作表时,这些值不会“显示”。 因此,在工作表上,这些值消失了。一个选项是再次选中所有复选框。 这不是我想要的,因为很多人会使用这种形式,这将是耗时和不切实际的。
是否有激活/启用复选框的方法?< /P> < P>您应该考虑在“代码”>“单击”()/代码>中从用户表单发送到表单,并在“<代码>激活”< /代码>子中加载表单值,例如

Private Sub CheckBox1_Click()
    If CheckBox1.Value Then
        [A1] = "X"
    Else
        [A1] = ""
    End If
End Sub

Private Sub UserForm_Activate()
    If [A1] = "X" Then
        Me.CheckBox1 = True
    Else
        Me.CheckBox1 = False
    End If
End Sub
如果复选框显示为灰色,原因可能是该复选框被同一段代码或另一段代码或元素的属性窗口禁用(
CheckBox1.Enabled=False


还要注意,Excel并不是真正的多用户友好型。一旦多个用户打开了同一个Excel,它将驻留在他们电脑的内存中,其他人的更改将不可见,除非他们关闭并重新打开该文件。

您是否也可以发布所有相关的复选框事件代码。如果您不禁用它,您的复选框将不会被禁用…谢谢,它确实在代码中再次被禁用。它现在工作得很好。关于多用户问题,我使用了一个文件共享系统,在这个系统中,当您使用一个文件时,您可以“签出”它,而其他人将无法接受它。保存更改的文件并关闭程序时,该文件将再次可用。再次感谢你的回答。欢迎。。。如果问题被回答,请考虑接受它,这样它的状态就会改变…谢谢