我有一段代码,它从 H2 中取出一个数字,然后根据这个数字选择 X 行并打印它们。我不知道如何在打印后删除所选内容。如果我不清除 H2,代码就会开始一些循环并不停地打印所选内容。如果我删除 H2 数字,我将失去所选内容并且无法删除它们。
如果我可以将我的数据从 Sheet1 移动到 Sheet3(整个 A 列)并告诉代码从那里选择并打印(当我在 Sheet1 中输入一个数字时),然后删除打印的行,那就完美了。
请帮助我解决这个问题。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celltxt As String
Dim n As Range
'H2 is where the entry number is going to be
Set n = Worksheets("Sheet1").Range("H2")
On Error GoTo Finalise
'Select Column C and H2 number
Worksheets("Sheet1").Range(Cells(2, 1), Cells(n + 1, 1)).Select
celltxt = Worksheets("Sheet1").Range("H2").Text
If InStr(1, celltxt, "") Then
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Range("H2") <> "" Then
Selection.PrintOut
Range("H2").ClearContents
Selection.EntireRow.Delete
End If
Next ws
Else
End If
Finalise:
Application.EnableEvents = True
ActiveSheet.Range("H2").Select
End Sub
谢谢
答案1
即使我无法将数据移动到 Sheet3(如果有人知道如何操作,我将不胜感激),我还是设法完成了代码,但它会从 A1 列获取数据并删除 H2。好消息是它也会删除所选内容。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celltxt As String
Dim n As Range
'H2 is where the entry number is going to be
Set n = Worksheets("Sheet1").Range("G1")
On Error GoTo Finalise
'Select Column C and H2 number
Worksheets("Sheet1").Range(Cells(2, 1), Cells(n + 1, 1)).Select
celltxt = Worksheets("Sheet1").Range("G1").Text
If InStr(1, celltxt, "") Then
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Range("H2") <> "" Then
Selection.PrintOut
'Range("H2").ClearContents
'ass.Delete Shift:=xlToUp
Selection.EntireRow.Delete
'Application.SendKeys ("{LEFT}")
End If
Next ws
Else
End If
Finalise:
Application.EnableEvents = True
Sheets("Sheet1").Activate
ActiveSheet.Range("H2").Select
Range("H2").Interior.ColorIndex = 3
End Sub
同样,如果有人知道如何在其他工作表中进行选择并从那里删除行并返回到 H2,那就太棒了。
谢谢