Кто-нибудь сможет дать какое-то указание о том, как лучше всего я смогу написать код, который позволит мне удалить выбранную строку в моей таблице? В моей таблице есть скрытые формулы, ссылки на другие ячейки и таблицы, а также скрытые столбцы.
Это код, с которым я сейчас работаю, который удаляет строку, однако при запуске кода формулы таблицы возвращают ошибку #REF!
, В значительной степени новичок, поэтому любая помощь и руководство с благодарностью! :)
Sub Remove_Selected_Data()
' This subroutine clears the Selected Data from the row in the expenses and income table
' which is currently selected
Dim iSelectedRow As Integer
Dim sAnswer As String
Dim wb As ThisWorkbook
Dim ws As Worksheet
Dim lo As ListObject
Set wb = ThisWorkbook
Set ws = ThisWorkbook.Worksheets("2020_Data")
Set lo = ThisWorkbook.Worksheets("2020_Data").ListObjects("Table1")
Application.ScreenUpdating = False
iSelectedRow = ActiveCell.Row
' Check if selected row is a valid row to delete
If iSelectedRow = 1 Then
MsgBox "Please select a row within the Table!", vbExclamation, "Test1"
Exit Sub
ElseIf iSelectedRow > lo.DataBodyRange.Rows.Count + 1 Then
MsgBox "Please select a row within the Table!", vbExclamation, "Test2"
Exit Sub
End If
' Check if you really want to clear all data
sAnswer = MsgBox("Are you sure you want to clear the Selected data?" & vbNewLine & _
"Click Yes to continue", vbYesNo + vbQuestion, "Test3")
If sAnswer = vbYes Then
Application.EnableEvents = False
ws.Rows(iSelectedRow).Delete
Application.EnableEvents = True
End If
Application.ScreenUpdating = True
End Sub
Заранее спасибо за помощь! :)