我想要做的是有一个命令按钮,当按下时,会弹出一个输入框,询问“请输入项目数(限制5000)”,然后运行一个VBA代码,隐藏Inputbox.value +之间的所有行3(标题行数)到行5003(表格的末尾)。
我找到了以下代码,可让我使用切换按钮隐藏列
Private Sub ToggleButton1_Click()
Dim xAddress As String
xAddress = "BV:CQ"
If ToggleButton1.Value Then
Application.ActiveSheet.Columns(xAddress).Hidden = True
Else
Application.ActiveSheet.Columns(xAddress).Hidden = False
End If
End Sub
我不确定如何创建输入框,然后调整该数字以考虑标题,然后使用上面的代码将其设置为范围的起始行(在代码中更改行的列)。
答案 0 :(得分:0)
以下示例适用于输入框
N = Application.InputBox("Input a number", Type:=1)
'Type:=0 A formula
'Type:=1 A number
'Type:=2 Text (a string)
'Type:=4 A logical value (True or False)
'Type:=8 A cell reference, as a Range object
'Type:=16 An error value, such as #N/A
'Type:=64 An array of values
但是想想你可以创建一个逻辑自动检测记录的长度
使用以下功能,
如果A栏什么都没有,nLastRow将是3。
nLastRow = getLastRow(Sheets(1).Range("A:A"), 3)
Function getLastRow(ByVal inputRng As Range, ByVal headerRow As Single) As Single
Dim nRow As Single
nRow = 0
On Error Resume Next
nRow = inputRng.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
If nRow = 0 Or nRow <= headerRow Then
nRow = headerRow
End If
getLastRow = nRow
End Function
希望这有帮助!