obrigado antecipadamente. O título resume de forma bastante sucinta, mas para fins ilustrativos, aqui está o que eu estou tentando fazer:
Sub Main
dim doc as Object, sheet as Object
doc=ThisComponent
numSheets=doc.Sheets.count()
sheet=doc.Sheets(numSheets-1)
sheetName=sheet.Name
currentDay=Date()
lastDay=sheet.getCellRangeByName("B1").value
mon=Month(lastDay)
Select case mon:
case 1:
monMod=31
case 2:
monMod=28
case 3:
monMod=31
case 4:
monMod=30
case 5:
monMod=31
case 6:
monMod=30
case 7:
monMod=31
case 8:
monMod=31
case 9:
monMod=30
case 10:
monMod=31
case 11:
monMod=30
case 12:
monMod=31
End Select
nextMonEnd=CDate(lastDay+monMod)
If currentDay > lastDay Then
newName$=CDate(lastDay+1) & "-" & CDate(nextMonEnd)
doc.Sheets.copyByName(sheetName, newName$, numSheets) '<--
newSheet=doc.sheets(numSheets) 'this part here is the
newPrevious=newSheet.getCellRangeByName("A1")'snag.Throws a Runtime
newPrevious.string=CDate(lastDay+1) 'Exception, Message: .
newEnd=newSheet.getCellRangeByName("B1") 'I think it's passing a
newEnd.string=CDate(nextMonEnd) 'null, but I don't know
End If 'why. Any help would be
End Sub 'greatly appreciated
Se eu codificar o destName arg, ele será executado limpo. Eu tentei várias abordagens diferentes, mas qualquer variável que eu passar como o destName lança um erro. Mais uma vez obrigado, rapazes e moças.
Alterado: Com alguma ajuda (ver comentários), eu criei esta revisão de trabalho da minha macro, tudo o resto permanece o mesmo. Postando para relevância.
nextMonEnd=CDate(lastDay+monMod)
newFirst=CDate(lastDay+1)
newName=CStr(Format(newFirst, "mm-dd-yyyy")) & " " & _
CStr(Format(nextMonEnd, "mm-dd-yyyy"))
If currentDay > lastDay Then
doc.Sheets.copyByName(sheetName, newName, numSheets)
newSheet=doc.sheets(numSheets)
newCurrent=newSheet.getCellRangeByName("A1")
newCurrent.value=lastDay+1
newEnd=newSheet.getCellRangeByName("B1")
newEnd.value=nextMonEnd
print "New Monthly sheet added."
End If