Я знаю, что это был вопрос как вопрос много раз.Но я просто не могу заставить его работать, я пробовал множество методов.
У меня есть code
, который автоматически копирует определенный rows
в новый sheet
, когда конкретный value
вводится в Column B
.Но это происходит только тогда, когда вы назначаете марко кнопке и запускаете ее вручную.Это не очень эффективно при копировании множества строк.Особенно, когда вы копируете более сотни строк с изменением только нескольких последних.Я надеюсь, что это произойдет автоматически при вводе этого значения.
Так что мой first
sheet
называется MASTER
, а second
sheet
называется CON
.Когда Change of Numbers
введен в MASTER
, я хочу автоматически скопировать эти rows
на лист CON
.
Этот code
ниже расположен в Master
Sheet
(которыйпервый).Этот script
используется для скрытия / отображения определенных Columns
, когда значения вводятся в Column B
.
ОСНОВНОЙ ЛИСТ
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
On Error GoTo safe_exit
Application.EnableEvents = False
Dim t As Range
For Each t In Intersect(Target, Range("B:B"))
Select Case (t.Value)
Case "Change of Numbers"
Columns("B:BP").EntireColumn.Hidden = False
Columns("H:BL").EntireColumn.Hidden = True
'do nothing
End Select
Next t
End If
safe_exit:
Application.EnableEvents = True
End Sub
Следующий script
расположен в sheet
CON
(который является вторым листом).Это script
используется для auto-copy
rows
, где X
вводится в Column A
в Master sheet
.Однако я должен назначить этот макрос для кнопки на этом листе.Затем он захватывает все назначенные строки каждый раз при запуске макроса.
CON SHEET
Option Explicit
Sub FilterAndCopy()
Dim sht1 As Worksheet, sht2 As Worksheet
Set sht1 = Sheets("MASTER")
Set sht2 = Sheets("CON")
sht2.UsedRange.ClearContents
With Intersect(sht1.Columns("B:BP"), sht1.UsedRange)
.Cells.EntireColumn.Hidden = False ' unhide columns
If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False
.AutoFilter field:=1, Criteria1:="Change of Numbers"
.Range("A:F, BL:BO").Copy Destination:=sht2.Cells(2, "B")
.Parent.AutoFilterMode = False
.Range("H:BK").EntireColumn.Hidden = True ' hide columns
End With
End Sub
Но это все равно не работает без запуска сценария вручную.