Отказ от ответственности: Хорошо, так что обо всем по порядку - я новичок в VB-скриптинге, поэтому тестирование и компиляция сейчас являются чем-то вроде кривой обучения ..
Моя цель: Пожалуйста, исправьте меня везде, где я ошибаюсь - в настоящее время я использую Visual Studio 2017 для редактирования и тестирования моего VB-скрипта, и мне нужно, чтобы он сделал следующее:
- Запуск назаданная папка ищет файлы Excel .xlsx
- Найдите ячейку со значением «Дата» на листе с именем «Настройка» в каждом файле
- Если его там нет, пропустите файл
- Если это так - обновите ячейку справа от нее до сегодняшней даты.
- Обновите все соединения в файле, сохраните его и перейдите к следующему
- Повторяйте, пока все не будет сделано
Пока что он открывает все файлы в данной папке, обновляет соединения, сохраняет и закрывает - но мне нужно это сделать Шаг 2 выше .. Не обращайте внимания на закомментированные части, которые работают.
Текущее состояние
Первая попытка выглядит следующим образом (хотя и не полностью) - теперь появляется ошибка при построении решения, говорящая, что мне нужно «объявить» xlValues, xlWhole и xlByRows, которые все равно должны быть частью функции Find как параметры в качестве параметров??
Module RefreshAll_Folder
Sub Main()
Dim ConnectivityPath, RefreshDate, fso, xl, EOMloop, SetupPage, wb
Dim sval As Range
'--- Set variables ---
SetupPage = "Setup"
RefreshDate = Now
ConnectivityPath= "<networkpath>\Connectivity"
fso = CreateObject("Scripting.FileSystemObject")
xl = CreateObject("Excel.Application")
EOMloop = fso.GetFolder(ConnectivityPath).Files
'--- FOR CONNECTIVITY ---
xl.Visible = True
For Each f In EOMloop
If LCase(fso.GetExtensionName(f.Name)) = "xlsx" Then
wb = xl.Workbooks.Open(f.Path)
wb = wb.Sheets(SetupPage).Range("A1:F7")
sval = wb.Find(What:="Date", LookIn:=xlValues,
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=False, SearchFormat:=False)
wb.select(sval)
' wb.Worksheets("Setup").Range("B2").Value = Now
' wb.RefreshAll
wb.Save
wb.Close
End If
Next
xl.Quit
End Sub
End Module
Спасибо за помощь заранее!