我對VBA很陌生,所以很多東西都不懂。我制作了一個按鈕,在另一行上方添加新行,其中 C 列中單元格的值是“在上方添加行”。
我這樣做是因為在下面的行上有一個公式,它總計所有列 E。所以當我在 C 上方添加一行時,它上面的值添加行會自動更新公式。可能有更好的方法來做到這一點。
無論如何,我現在需要將 B 列中的公式復制到每個公式中。該公式是 eimply =ROW(A1),因此它對行進行編號。
我當前添加新行的 VBA 代碼是:
Sub AddRow()
Application.ScreenUpdating = False
Dim i As Long
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "C").End(xlUp).Row
For i = Lastrow To 1 Step -1
If Cells(i, "C").Value = "Add row above" Then If i > 1 Then Rows(i).Resize(1).Insert xlUp
Next
Application.ScreenUpdating = True
End Sub
任何幫助表示贊賞
uj5u.com熱心網友回復:
插入行并復制公式
- 請注意
=ROW(A1),=ROW(Z1)or 只是=ROW()產生相同的結果。
Option Explicit
Sub AddRow()
Application.ScreenUpdating = False
Dim i As Long
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "C").End(xlUp).Row
For i = Lastrow To 2 Step -1
If Cells(i, "C").Value = "Add row above" Then
Rows(i).Insert xlShiftDown
Cells(i 1, "B").Copy Cells(i, "B")
' Or (if below is not numbered):
'Cells(i - 1, "B").Copy Cells(i, "B")
End If
Next
Application.ScreenUpdating = True
End Sub
uj5u.com熱心網友回復:
我發現創建命名范圍并參考它更容易。這樣,如果它在作業表周圍移動,命名范圍將跟隨它,您不必去尋找。
當你這樣做時,這段代碼很容易作業,你只需要調整它。
此外,如果您想參考公式所在的行,該ROW()函式實際上不需要引數。ROW()
Public Sub AddRowAndCopyFormula()
Dim lngAddAtRow As Long
With ThisWorkbook.Names("AddRowAbove")
lngAddAtRow = .RefersToRange.Cells(1, 1).Row
.RefersToRange.Worksheet.Rows(lngAddAtRow).Insert xlShiftDown
.RefersToRange.Worksheet.Range("B" & lngAddAtRow).Formula = "=ROW() - 7"
End With
End Sub
這就是我的作業表的樣子。

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/415476.html
標籤:
上一篇:如何修復標題單元格的搜索?
