首页 > 解决方案 > 使用用户表单单选按钮在组更改后添加空行/分页符

问题描述

我搜索了其他问题,但遗憾的是,我找不到正确的答案。

我的用户表单:

在此处输入图像描述

我的代码:

Private Sub cancel_button_Click()
Unload Me
End Sub

Private Sub ok_button_Click()
If empty_row_radio = True Then
    MsgBox ThisRng.Address
    For i = ThisRng.Rows.Count To 2 Step -1
        If ThisRng.Cells(i, 1).Value <> ThisRng.Cells(i - 1, 1).Value Then
            ThisRng.Cells(i, 1).EntireRow.Insert
        End If
    Next
    Application.ScreenUpdating = True
    Unload Me
ElseIf page_break_radio_Click = True Then
    Dim j As Long
    For j = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row To 3 Step -1
        If Range("A" & j).Value <> Range("A" & j - 1).Value Then
                ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A" & j)
        End If
    Next j
    Unload Me
End If
End Sub

Private Sub inputRange()
Dim ThisRng As Excel.Range
Set ThisRng = Application.InputBox("Select a range", "Get Range", Type:=8)
range_textbox = ThisRng.Address
End Sub

Private Sub UserForm_Initialize()
    Call inputRange
End Sub

在初始化用户表单时,我调用inputRange()sub 进行范围选择。之后,范围地址显示在 中textbox。然后用户选择其中一个单选按钮并单击“确定”按钮,运行相应的代码以插入空行或分页符。
我的问题是,它没有选择选择范围,因此没有任何反应。

有什么帮助吗?

标签: vbaexcel

解决方案


使用免责声明,您可能永远不应该这样编程,而是遵循 VBA 中的一些良好实践,以下是可行的:

  1. Dim ThisRng As Excel.Range从您的代码中删除该行。
  2. 在表格顶部准确地写下该行。

良好处理用户表单的一些示例:


推荐阅读