如何只用填充的文本框填充Excel工作表单元格,而没有任何空白单元格?

时间:2019-10-22 04:16:02

标签: excel vba

我是VBA的新手,最近我一直在开发计算器以帮助完成我的工作。我已经在Excel工作表中创建了具有多个复选框和文本框的表单,我有一个应由用户表单填写的表格。但是,我遇到了问题,在用户表单中有一个复选框,当用户选中该复选框时必须输入文本框,我得到了恰好八个类似的类别(复选框和文本框),因此所有复选框和所有填充的文本框应显示在工作表的单元格中,但是我这样做的方式是,我使用以下行:

Range("E5").Value = "Project Manager"

对于八个类别中的每个类别,它都必须填充单元格,而不能留下任何空白单元格。

例如,用户选中8个框中的5个,并相应地为每个文本框填写文本框,如果他们跳过了其中一个框,则在将它们打印到单元格上时,不能做相同的操作。

Private Sub CommandButton1_Click()

Dim PMdays As Integer

If PMcheckBx.Value Then
    Range("E5").Value = "Project Manager"

    PMdays = PMtextBx.Value

    ActiveCell.Offset(0, 1) = PMdays
End If

End Sub

因此,我附上一张我希望它看起来如何以及我现在看起来如何的图像,以帮助您进一步了解我的问题。

How my sheet looks like

How it should look

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

Private Sub CommandButton1_Click()

    Dim PMdays As Integer, c As Range

    Set c = ActiveSheet.Range("E5").Value '<< start list here

    If PMcheckBx.Value Then
        c.Resize(1,2).Value = Array("Project Manager", PMtextBx.Value)
        Set c = c.Offset(1, 0) 'move down one row
    End If

    'next 7 checkboxes 

End Sub

请注意,不需要ActiveCell /选择/激活。