我对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为空,我想退出子 –