我编写了一个代码,根据下拉菜单选择并复制粘贴某些单元格。 主文件上的代码是
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("$Q$28")
Call Get4
End Sub
下拉列表有6个选项。每次打开文件并选择6个下拉选项中的任何一个时,它都会执行所需的操作。第二次更改选项时,它不执行任何操作。关闭并重新打开同一张纸并选择6选项的任何选项后,它再次起作用。 所以宏只工作一次而不是之后。 请让我知道如何让它多次工作。 这是我的代码,请看一下。
Sub Get4()
Dim ws As Worksheet
Application.EnableEvents = False
ActiveWorkbook.Sheets("4V").Range("A01:AN70").Clear
For Each Shp In ActiveWorkbook.Sheets("4V").Shapes
If Not (Shp.Type = msoOLEControlObject Or Shp.Type = msoFormControl) Then Shp.Delete
Next Shp
'For Each ws In ActiveWorkbook.Sheets
'ws.Visible = xlSheetVisible
'Next
If ActiveWorkbook.Sheets("Main").Range("Q28") = "Vertical , Reduced Mesh Pad , Half pipe" Then
Sheets("4-10").Select
Range("A01:AN67").Select
Selection.Copy
Sheets("4V").Select
Range("A01:AN67").Select
ActiveSheet.Paste
Else
If ActiveWorkbook.Sheets("Main").Range("Q28") = "Vertical , Reduced Mesh Pad , Baffle" Then
Sheets("4-11").Select
Range("A01:AN67").Select
Selection.Copy
Sheets("4V").Select
Range("A01:AN67").Select
ActiveSheet.Paste
Else
If ActiveWorkbook.Sheets("Main").Range("Q28") = "Vertical , Mesh Pad , Half pipe" Then
Sheets("4-12").Select
Range("A01:AN67").Select
Selection.Copy
Sheets("4V").Select
Range("A01:AN67").Select
ActiveSheet.Paste
Else
If ActiveWorkbook.Sheets("Main").Range("Q28") = "Vertical ,Mesh Pad ,Baffle" Then
Sheets("4-13").Select
Range("A01:AN67").Select
Selection.Copy
Sheets("4V").Select
Range("A01:AN67").Select
ActiveSheet.Paste
Else
If ActiveWorkbook.Sheets("Main").Range("Q28") = "Vertical , No Mesh Pad , Half pipe" Then
Sheets("4-15").Select
Range("A01:AN67").Select
Selection.Copy
Sheets("4V").Select
Range("A01:AN67").Select
ActiveSheet.Paste
Else
If ActiveWorkbook.Sheets("Main").Range("Q28") = "Vertical , No Mesh Pad , Baffle" Then
Sheets("4-14").Select
Range("A01:AN67").Select
Selection.Copy
Sheets("4V").Select
Range("A01:AN67").Select
ActiveSheet.Paste
End If
End If
End If
End If
End If
End If
End Sub
答案 0 :(得分:2)
将启用事件设置为true。如果它是假的,工作簿中的事件就不会被触发。放置:<directive value="string"></directive>
在您的潜艇的末尾。