Я некоторое время скрывался в StackOverflow и собрал вместе некоторый код, чтобы помочь автоматизировать создание нового ежедневного отчета.Мой код работает нормально для поиска предыдущего отчета, генерации нового отчета с +1 и очистки некоторых диапазонов, которые необходимо сбрасывать каждый день.
Моя текущая проблема пытается очистить некоторые условные ячейки.Я пробовал несколько примеров близкого использования здесь и на других сайтах Excel / VBA, но я не достаточно опытен с VBA, чтобы иметь возможность напрямую переводить в подробности моего кода.
Чтобы быть более точным, для всех строк 47до 79 Мне нужно проверить, объединена ли ячейка H47: I47 содержит значение «N» для простой проверки «да нет»
Если это условие истинно, ТО мне нужно .clearcontents столбцы слева от ячейки проверки,поэтому A47: G47.Затем мне нужно повторить эту проверку для каждой строки до 79.
Я думаю, что моя проблема усложняется текущей структурой именования листов и пытается сослаться на постоянно меняющийся "sht_NewWeek)
Ниже я вставлю то, что у меня есть, и с нетерпением жду вашей помощи
Sub CreateNewSheet()
Dim wrkSht As Worksheet
Dim lWkNum As Long
Dim lCurNum As Long
Dim sht_LastWeek As Worksheet
Dim sht_NewWeek As Worksheet
'Find previous week and set reference to it.
For Each wrkSht In ThisWorkbook.Worksheets
If IsNumeric(Replace(wrkSht.Name, "Report ", "")) Then
lCurNum = CLng(Replace(wrkSht.Name, "Report ", ""))
If lCurNum > lWkNum Then lWkNum = lCurNum
End If
Next wrkSht
Set sht_LastWeek = ThisWorkbook.Worksheets("Report " & lWkNum)
'Create new sheet, set reference to it and rename.
sht_LastWeek.Copy after:=Sheets(sht_LastWeek.Index)
Set sht_NewWeek = Sheets(sht_LastWeek.Index + 1)
sht_NewWeek.Name = "Report " & lCurNum + 1
'Clear the cells and relink formula to previous sheet, while updating report date to today
With sht_NewWeek
.Range("D16:M16,B20:B44,C20:C44,D20:M44,D19:M19").ClearContents
.Range("F12").Value = "=Today()"
.Cells.Replace What:="'Report " & lCurNum - 1 & "'!", _
Replacement:="'Report " & lCurNum & "'!", _
LookAt:=xlPart
End With
End Sub