将数据从 Userform CheckBox 和 Textbox 复制到列

Copying data from Userform CheckBox and Textbox to columns

我正在尝试创建一个带有用户表单的工具,用户可以在其中的文本框中键入一个模型,然后在 10 个可能的复选框中选择该模型来自的所有国家/地区。

此信息通过命令按钮传输到“国家/地区”工作表。

我的代码将文本框值放在 A 列中,将复选框标签中的国家/地区名称放在 B 列中。
问题是我在多个国家/地区使用同一型号,所以我得到了没有匹配型号的空白单元格。
例如。 “Type A”属于美国、巴西、瑞典和墨西哥,因此我应该将“Type A”沿国家/地区名称复制四次,而不是一次。

Private sub Transfer()
    
    Dim i As Long
    Dim aCol As Range
    Dim BS As Worksheet
    
    Set aCol = Worksheets("Country").Range("A:A")
    Set BS = Worksheets("Country")
    
    For i = 1 To 10
        With Me.Controls("CheckBox" & i)
            If .Value Then
                aCol.Cells(82, 2).End(xlUp).Offset(1, 0).Value = .Caption
            End If
        End With
    Next i
    
    Dim b As Integer
    b = 1
        
    Do Until BS.Range("A" & b).Value = ""

    b = b + 1

end sub

使用您共享的代码且没有重大更改,我建议您考虑将文本框中包含的信息写在复选框循环内并紧跟在 if 之后。这样你将添加文本框文本,不管是什么避免空白

If .Value Then
    aCol.Cells(82, 1).End(xlUp).Offset(1, 0).Value = Me.Controls("TextBox1").Text
    aCol.Cells(82, 2).End(xlUp).Offset(1, 0).Value = .Caption
End If

让我知道是否可行,在我用来复制您的问题的完整代码下方:

Private Sub CommandButton1_Click()
Call Transfer
End Sub


Private Sub Transfer()
Dim i As Long
Dim aCol As Range
Dim BS As Worksheet

Set aCol = Worksheets("Country").Range("A:A")
Set BS = Worksheets("Country")

    For i = 1 To 3
        With Me.Controls("CheckBox" & i)
            If .Value Then
                aCol.Cells(82, 1).End(xlUp).Offset(1, 0).Value = Me.Controls("TextBox1").Text
                aCol.Cells(82, 2).End(xlUp).Offset(1, 0).Value = .Caption
                
            End If
        End With
        Next i
End Sub

How the form I did looks in VBA

How the results look like in the file