Я создал пару макросов, и у меня возникает проблема (иногда), когда у меня открыто несколько файлов Excel.По какой-то причине макросы перестают работать (ошибка VBA Runtime 1004).Я подозреваю, что мне нужно правильно объявить рабочую книгу / рабочий лист, но я еще не понял, как это сделать.С моим базовым пониманием я думал, что будет работать следующее (не в моем коде, я пробовал, и это не сработало): `
Dim wb as WorkBook
Dim ws as WorkSheet
Set wb = ActiveWorkbook
Set ws = ActiveWorkSheet
wb.ws.range("A1") = 2
`
Однако, так как вышеЯ не думаю, что мне не хватает полезных / ценных знаний.
Если полезно: макросы используются для создания ежемесячного отчета.Следовательно, они изначально пусты, а затем создают листы для января, февраля и так далее.
Sub ConsultantInvoicing()
Dim CurrentMonth As String
Dim NextMonth As String
'Dim wb As Workbook
'Set wb = ActiveWorkbook
'Dim wsActiveSheet As Worksheet
'Set wsActiveSheet = wb.ActiveSheet
Sheets(Sheets.Count).Select
If Range("A1") = "" Then
Call AddFirstSheet
Else
Call AdditonalSheet
End If
End Sub
Private Sub AddFirstSheet()
CurrentMonth = Application.InputBox("Please enter what month",
"Invoice (monthly) - What month?")
ActiveSheet.Name = CurrentMonth
Call NewSheetFormat
End Sub
Private Sub AdditonalSheet()
CurrentMonth = Range("A1")
Select Case CurrentMonth
Case "January", "january"
NextMonth = "February"
Case "February", "february"
NextMonth = "March"
Case "March", "march"
NextMonth = "April"
Case "April", "april"
NextMonth = "May"
Case "May", "may"
NextMonth = "June"
Case "June", "june"
NextMonth = "July"
Case "July", "july"
NextMonth = "August"
Case "August", "august"
NextMonth = "September"
Case "September", "september"
NextMonth = "October"
Case "October", "october"
NextMonth = "November"
Case "November", "november"
v = "December"
Case "December", "december"
NextMonth = "January"
End Select
Set ws = ThisWorkbook.Sheets.Add _
(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ActiveSheet.Name = NextMonth
ActiveSheet.Range("A1") = NextMonth
Call NewSheetFormat
End Sub
Private Sub NewSheetFormat()
'formats the sheet
Range("A:A").ColumnWidth = 29.17
Range("ColumnWidth").ColumnWidth = 12.5
..
..
End Sub
Заранее спасибо!С уважением, Александр