셀을 두 번 클릭하면 일부 수식이있는 셀 아래에 새 행이 삽입되는 매크로를 작성하려고합니다. 중요한 점은 셀을 다시 두 번 클릭하면 이전에 삽입 된 행의 수식이 올바른 인덱스로 업데이트된다는 것입니다.excel : 행 업데이트 수식을 삽입하십시오.
예를 들어 아래 코드에서 A1을 두 번 클릭하면 두 번째 행에 수식 = B2 + 1이 삽입됩니다. 다시 두 번 클릭하면 두 번째 행에 동일한 내용이 삽입됩니다. 이제 2 번째 줄이 3 행으로 이동하므로 수식 A3에서 = B3 + 1이어야합니다.
Option Explicit
Const MYRANGE As String = "A:A"
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'If Sh.Name <> "Sheet1" Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Sh.Range(MYRANGE)) Is Nothing Then Exit Sub
Cancel = True
Target.Rows(2).Insert
Dim newRow As Range
Set newRow = Target.Rows(2)
Dim rowIndex As Long
rowIndex = newRow.row
newRow.Cells(1, 1).Formula = "=B" & rowIndex & "+1"
End Sub
UPDATE : Target.Offset(1).EntireRow.Insert
-Target.Rows(2).Insert
이 문제를 해결 변경 여기
오프셋을 사용하면 좋은 해결책을 발견했습니다. 행 (2)에는 이미 전체 행이 있으므로 EntireRow 속성이 없습니다. 오프셋이 무엇인지 알아 보려면 Google 또는 도움말을 사용해보십시오. 단순히 행과 열을 기준으로 한 셀의 오프셋이므로 newRow를 두 번 클릭 한 셀 아래에있는 셀 하나를 삽입하는 행과 같게 설정해야합니다. –