我搜索了其他问题,但遗憾的是,我找不到合适的答案。
我的代码:
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()
子进行范围选择。之后,范围地址显示在textbox
中。然后用户选择其中一个单选按钮,单击确定按钮,相应的代码将运行以插入空行或分页符。
我的问题是,它没有拿起选择范围,因此没有任何反应。
任何帮助?
答案 0 :(得分:1)
有了免责声明,您可能永远不应该像这样编程,但是遵循VBA中的一些优秀做法,这是可行的:
Dim ThisRng As Excel.Range
。良好处理用户表单的一些示例: