我對VBA比較新,我需要幫助。如果目標範圍變大,相交不起作用
我有一個工作表內的私人小組,我希望它自動填充鄰近動態命名範圍的公式,如果範圍的大小發生變化。
(編輯)我正在將數據從另一個工作表粘貼到這一列A-M中。我的動態範圍定義爲= OFFSET($ A $ 1,1,0,COUNTA($ A:$ A)-1,13)。如果列M中沒有數據,並且我有目的地計算列M的最後一行,則第一個If語句應該退出該子集,因爲我想填充N:O中的公式,以便它們覆蓋與列相同的行數M.
這是我的代碼,它的工作原理是如果範圍的大小變小(即如果我從底部刪除行),但不是如果它變得更大,我不能解決原因!
Private Sub Worksheet_Change(ByVal Target As Range)
If Me.Range("M2").Value = "" Then
MsgBox "No Data!"
Exit Sub
Else
If Intersect(Target, Me.Range("rngOracleInvoices")) Is Nothing Then
Application.EnableEvents = False
Dim Lrows As Long
Lrows = Me.Cells(Me.Rows.Count, "N").End(xlUp).Row
Me.Range(Me.Cells(3, 14), Me.Cells(Lrows, "O")).ClearContents
Me.Range("N2:O2").AutoFill Destination:=Me.Range("N2:O" & Me.Range("M" & Me.Rows.Count).End(xlUp).Row)
End If
End If
Application.EnableEvents = True
End Sub
我把最後一位到一個單獨的宏來測試它是否適用於自己的,由於某種原因,當我運行它,自動填充去一路攀升至第1行,並覆蓋公式,很奇怪,因爲我使用了很多代碼,而且之前從來沒有這樣做過。我做了什麼??!!
而且,如果有更好的辦法做到我會很感激,如果有人可以讓我知道它是什麼,因爲我只是拼湊,從比特我一起在論壇上:)
由於發現了自動填充,
SOPH
M列是什麼? – Rory
列M是我的數據範圍的最後一列,所以如果單元格M2爲空,我想退出子 –