Я упростил ваш код до этого:
Sub agetprevsectinfo()
Dim wb As Workbook
Dim wb2 As Workbook
Dim ws As Worksheet
Dim x As Integer
Dim xx As Integer
Dim y As Integer
Dim newdir As String
Dim formulapth As String
Dim curmnth As String
Dim prevmnth As String
x = 0
xx = 0
y = 104
Set wb = ThisWorkbook
Set ws = wb.ActiveSheet
curmnth = "03" 'hard-coded
prevmnth = "02" 'hard-coded
newdir = wb.Path & "\" & Replace(Replace(wb.Name, curmnth, prevmnth), MonthName(CDate(curmnth)), MonthName(CDate(prevmnth)))
formulapth = wb.Path & "\[" & Replace(Replace(wb.Name, curmnth, prevmnth), MonthName(CDate(curmnth)), MonthName(CDate(prevmnth))) & "]"
'last chance to cancel import
MsgBox (formulapth)
End Sub
И это работает.
Все в этом коде совпадает с вашим, за исключением того, что я жестко запрограммировал curmnth
и prevmnth
и вырезал все после строки, которую вы говорите, терпит неудачу.
Другими словами, вы не правильно определили проблему (предполагая, что мои жестко запрограммированные значения - это то, что на самом деле содержатся в ваших таблицах, но я основал их на вашем скриншоте).
Я понимаю, что это не очень хороший "Ответ", но я не уверен, как еще это передать.