VBA宏根据用户输入删除行
我试图找到一个宏,该宏将删除用户指定编号下的所有行。例如,用户将输入“19”,宏将删除第20行及以下行。我真的很感谢你的帮助VBA宏根据用户输入删除行,vba,excel,Vba,Excel,我试图找到一个宏,该宏将删除用户指定编号下的所有行。例如,用户将输入“19”,宏将删除第20行及以下行。我真的很感谢你的帮助 谢谢 这应该可以做到: Sub UserInput() Dim num As Integer num = InputBox(Prompt:="Enter the row number.", Title:="Enter Row Number", Default:="Row number") If (num < 1) Then G
谢谢 这应该可以做到:
Sub UserInput()
Dim num As Integer
num = InputBox(Prompt:="Enter the row number.", Title:="Enter Row Number", Default:="Row number")
If (num < 1) Then
GoTo Whoops:
End If
Dim i As Integer
i = 1
Do While i <= num
Rows(1).EntireRow.Delete
i = i + 1
Loop
GoTo Fin:
Whoops:
MsgBox ("You have entered an invalid row number")
Fin:
End Sub
Sub-UserInput()
Dim num作为整数
num=InputBox(提示:=“输入行号”,标题:=“输入行号”,默认值:=“行号”)
如果(num<1),则
后藤:哎呀
如果结束
作为整数的Dim i
i=1
i时执行,您可以在column=1和Row=1中输入要保留的行数。数据在rows=deleteRowsb中,然后将删除返回到row=2的每一行
Sub Macro1()
'
' Macro1 Macro
'
deleterowsbefore = ActiveSheet.Cells(1, 1)
Rows("2:" & deleterowsbefore - 1).Select
Selection.Delete Shift:=xlUp
End Sub
试试这个。我使用了ActiveSheet
。可以将其设置为要使用的任何图纸
Sub Sample()
Dim Ret As Long
Ret = Application.InputBox(Prompt:="Please enter a row number", Type:=1)
If Ret = False Then Exit Sub
With ActiveSheet
.Rows(Ret + 1 & ":" & .Rows.Count).Delete
End With
End Sub
试着写一个,如果你不能取得任何进展,发布你的代码,人们会帮助你。这是一个帮助你渡过驼峰的网站,一个为你做一切的网站。是的,我最初的描述是相当模糊的。我的意思是20-65536.+1@GrayFox374:我在30分钟前看到了你的评论,出于尊重,我没有发布代码示例,但当我看到发布了错误的代码示例时,我忍不住。我也为此道歉,我知道!即使只是鼓励他们,也很难不做出贡献!哈哈,我们有些人沉迷于解决问题!欢迎来到堆栈溢出。请阅读-,这里的问题应该与特定的编程问题有关。请发布您尝试过的内容,并明确指出您遇到的问题。您永远不需要在VBA中使用GoTo
。总有更好的办法。我认为OP使用了“第20行及以下”来表示第20-65536行(或其他,它可以变化),而不是第1-19行。诚然,这是不明确的。我认为在这里使用GoTo
没有问题;这很简单。我将“20及以下”解释为“20及以下,行号小于20,即1-19”。请看一位最优秀的Excel MVP对GoTo的评价:。我真的无法用GoTo Sorryhmm投票给一个答案,我不得不勉强同意@AndrewLeach和JMax——GoTo不应该在2012年“去”。当我第一次在Commodore 64上学习编码时,我曾经使用过它,但作为一名专业人员,我从未使用过它。这是可行的,但这对黑客来说是一个滑坡。GoTo-Fin:
在这里看起来毫无意义。只需使用Exit Sub
,这是一样的。