Создание путей Dynami c с использованием имен файлов и ячеек в рабочей книге - PullRequest
0 голосов
/ 26 апреля 2020

Следующий код используется для открытия рабочей книги с использованием ряда элементов из текущей рабочей книги, т.е. имен файлов и ссылок на ячейки. Цель состоит в том, чтобы я мог запускать этот код круглый год без внесения изменений, и пока он работает.

Мой вопрос: есть ли более чистый способ достижения того же результата? На данный момент существует много ссылок на каталог, то есть поиск папок, поскольку используется только частичное имя папки, а затем смена каталога после каждой папки. Я использую частичные имена папок, потому что другие будут переименовывать папки каждую неделю и месяц, и они будут каждый раз делать разные вещи, такие как добавление дефиса или пропуск пробела, поэтому поиск папок с использованием частичного имени избавляет от проблем.

Итак, для моего личного роста я хотел бы знать, есть ли какие-то улучшения, которые можно сделать здесь. Я чувствую, что закодировал «Наивный подход».

Sub UtilisationFilename()

Dim FilePath As String, Filename As String, FiscalYear As Variant, FYMonth As String, nFilePath As String, FYMonthFilePath As String
Dim UtilFilePath As String, mFilePath As String, UtilReport As String, CurrentWeek As String, Complete As String

FilePath = ThisWorkbook.Path '<- Returns 'C:\Users\My_User\Documents\Weekly Fee Report\FY20\10. April\Apr - Week 3'
Filename = ThisWorkbook.Name '<- Returns 'FY20_W41_Apr_Perth Weekly Report.xlsx'
FiscalYear = Split(Filename, "_") '<- I will want 'FY20' so I'll use FiscalYear(0)
FYMonth = Sheet3.Range("$BC$1") '<- Returns 'Apr'
UtilReport = "Util"
CurrentWeek = Sheet3.Range("$BC$3") '<- Returns '2'

ChDir (FilePath)
ChDir ("..\..\..") '<- Returns 'C:\Users\My_User\Documents\Weekly Fee Report'

WeeklyFeeReport = CurDir

nFilePath = Dir(WeeklyFeeReport & "\" & FiscalYear(0) & "\" & "*" & FYMonth, vbDirectory) '<- Returns '10. April'

mFilePath = WeeklyFeeReport & "\" & FiscalYear(0) & "\" & nFilePath & "\"

ChDir (mFilePath) '<- Returns 'C:\Users\My_User\Documents\Weekly Fee Report\10. April\

UtilFilePath = Dir(CurDir & "\" & UtilReport & "*", vbDirectory) '<- Returns 'Utilisation Report'

ChDir (mFilePath & "\" & UtilFilePath)

Complete = CurDir & "\" & FYMonth & " " & "Week" & " " & CurrentWeek

Dim wb As Workbook

Set wb = Workbooks.Open(Complete) '<- Opens the following: 'C:\Users\My_User\Documents\Weekly Fee Report\FY20\10. April\Utilisation Report\Apr Week 2.xlsx'

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...