Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2:E50")) Is Nothing Then
Call sbDriverCopy
Call sbDriverRotation
End If
End Sub
Sub sbDriverRotation()
Dim strDataRange, strkeyRange As String
strDataRange = "J1:N50"
strkeyRange = "L2:L50"
With Sheets("Sheet1").Sort
.SortFields.Clear
.SortFields.Add _
Key:=Range(strkeyRange), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
.SetRange Range(strDataRange)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Sub sbDriverCopy()
Range("D1:H50").Copy
Range("J1").Select
ActiveSheet.PasteSpecial xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
End Sub
E列はBA列またはTO-A列のいずれかで計算され、その計算値がE列私のマルコスを撃つ。私はいくつかの異なる方法を試しましたが、マルコに火をつけることはできません。VBAとExcelセルの変更でマクロを実行する必要があります
私は自分のマルコを1つにまとめる必要があると思っていますか?
Private Sub Worksheet_Calculate()
If Range("E2").Value <> PrevVal Then
MsgBox "Value Changed"
PrevVal = Range("E2").Value
End If
End Sub
だから私は、これは、細胞の変化(E2)に火災に取得することができますが、それは範囲(E2:E50)のために働くために取得する方法を見つけ出すカントここ
'Worksheet_Change'式の計算から生じた変化によってトリガーされません - あなたは計算イベントを使用する必要があります。 –