【问题标题】:How do I fill Excel sheet cells with only the filled text boxes without any empty cells?如何仅使用已填充的文本框填充 Excel 工作表单元格而没有任何空单元格?
【发布时间】:2019-10-22 16:18:01
【问题描述】:

我是 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

【问题讨论】:

    标签: excel vba


    【解决方案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/Select/Activate。

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 2017-01-23
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 2016-10-05
      • 2018-11-04
      相关资源
      最近更新 更多