Как изменить лист, на который ссылаются как на переменную?Я хочу, чтобы это активировать - PullRequest
1 голос
/ 19 сентября 2019

Макрос, который я написал - он извлекает информацию из двух разных электронных таблиц и форматирует все это.Эти таблицы будут меняться каждый месяц.Как заставить команду «ACTIVATE» ссылаться на открытую мной таблицу вместо той, которая была открыта, когда я записывал этот макрос?Одна из команд выглядит следующим образом:

Windows("273517_0273517M190831_08_31_2019_Toll Detail.csv").Activate

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

Это файл "... Toll Detail.csv" в строке 4, который должен быть переменной при ежемесячном изменении.На этот файл ссылаются несколько раз в моем записанном макросе.Я должен быть в состоянии войти и изменить каждого из них любым способом, который вы предлагаете.Я ПОЛНОСТЬЮ НОВИНКА для VBA, поэтому, пожалуйста, потише, насколько это возможно.:) Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Вы можете использовать GetOpenFileName для выбора и открытия вашего файла каждый раз.Ниже приведен код для вашей справки:

Sub OpenFile()
Dim myFile As String
Dim Wb As Workbook

myFile = Application.GetOpenFilename("CSV Files (*.csv), *.csv")

'Exit if no file selected
If myFile = "False" Then
    MsgBox "No file selected!"
    Exit Sub
End If

'Open the file
Set Wb = Workbooks.Open(myFile)
'Do what you want with the file here onward
'
'
'
End Sub
0 голосов
/ 19 сентября 2019

Я бы предложил объявить переменную в начале подпрограммы, например, так:

Dim strFile As String
strFile = "273517_0273517M190831_08_31_2019_Toll Detail.csv"

Во всем подпрограмме вы можете ссылаться на переменную, поэтому в каждом случае, когда в коде есть имя книгизамените его на strFile следующим образом:

Windows(strFile).Activate

Таким образом, вам придется обновлять его только один раз для всей процедуры.Возможно, существуют более элегантные решения, но для этого потребуется дополнительная информация о сценарии использования.

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