Я добавляю новую строку в таблицу каждый раз, когда в рабочую книгу добавляется новый лист, поэтому я пишу код в ThisWorkbook
- событие NewSheet
. Чтобы изменить формулу, которая автоматически записывается в новую строку, чтобы она выполняла поиск данных на новом листе, я перебираю столбцы и заменяю «2013» на фактический год (который является новым именем листа).
При первом запуске кода он работает отлично. Затем второй раз возвращает ошибку.
Я искал на форуме в течение нескольких дней, но не мог найти ответ. Я использую Excel 2016.
Я пробовал несколько вещей, но без теоретических знаний.
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Stop
Dim lastfileStudyYear, lastfileSponsorYear, lastfileAnalythics As Long
Dim i, uformula, lastyear, currentyear, newformula
Dim StudyYear, SponsorYear, Analythics As ListObject
Set StudyYear = Worksheets("Datos KPI").ListObjects("StudyvsYear")
Set SponsorsAño = Worksheets("Datos KPI").ListObjects("SponsorsvsYear")
Set Analythics = Worksheets("Datos KPI").ListObjects("Analythics")
lastfileStudyYear = StudyYear.Range.Rows.Count + 1
Worksheets("Datos KPI").Rows(lastfileStudyYear).Insert
lastyear= Worksheets("Datos KPI").Cells(lastfileStudyYear- 1, 1).Value
currentyear = lastyear + 1
Worksheets("Datos KPI").Cells(lastfileStudyYear, 1).Value = currentyear
colStudyYear = StudyYear.DataBodyRange.Columns.Count
For i = 2 To colStudyYear
newformula = StudyYear.DataBodyRange.Cells(lastfileStudyYear- 1, i).Formula
newformula = Replace(newformula, "2013", currentyear)
StudyYear.DataBodyRange.Cells(lastfileStudyYear- 1, i).Formula = newformula '<- HERE IS THE ERROR!!!!!!!!!!!!
Next
Я ожидаю, что формула в Cell(lastfileStudyYear- 1, i)
изменится с
=COUNTIF(Estudios2013[FA],"x")
до =COUNTIF(Estudios2020[FA],"x")
Но фактический результат - ОШИБКА.
Большое спасибо!