#excel #vba
#excel #vba
Вопрос:
Я написал код для извлечения информации из другой книги и копирования ее в мою активную книгу.
sub copydata
Workbooks.Open "C:Userabc.xlsx"
'test.xlsx is the active workbook, and abc.xlsx is the workbook data is being copied from
Workbooks("abc.xlsx").Worsheets("Sheet1").Range("A1:A10"). Copy
Workbooks("test.xlsx").Worsheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues
Workbooks("abc.xlsx").Close SaveChange:=True
End Sub
Если этот лист Excel запускает макрос на другом компьютере, каталог будет другим, а также имя файла должно остаться прежним.
Есть ли способ динамически изменять это или устанавливать это при запуске макроса с помощью кнопки?
Комментарии:
1. Конечно, это можно изменить, но как программа должна знать, в каком новом каталоге искать файл?
Ответ №1:
Я считаю, что это работает таким образом, но я не тестировал это.
вы можете затемнить переменные, чтобы заменить строку, которую вы используете.
dim path as string
path = (wherever you are pulling the path string data from)
Workbooks(path).Worksheets("Sheet1").Range("A1:A10").Copy
на самом деле вы можете сделать это для любой части, заключенной в кавычки. просто затемните переменную и заполните ее значением
dim sheet как листы
dim range1 как диапазон
range1 = диапазон («A1: A10»)
лист = листы («Лист1»)
должно позволить вам иметь все части в качестве переменных. итак, следующий код будет работать
Книги (путь).Рабочие листы (лист).диапазон (диапазон 1).копировать
Комментарии:
1. также этот код может помочь вам с созданием вложенных папок и доступом к ним.
Ответ №2:
Эторабочая книга.путь может быть очень полезен для вас. надеюсь, это имеет смысл в том, что я делаю, потому что код недостаточно полон для тестирования.
Dim Path1 as string
Dim Path2 as string
Dim Answer as boolean
Path1 = "Old"
Path2 = "New"
if Answer = true then
workbooks(ThisWorkbook.Path amp;"" amp; Path1 amp; "Newfile.xlsm")
else
workbooks(ThisWorkbook.Path amp;"" amp; Path2 amp; "Newfile.xlsm")
end if
этот пример, основанный на значении «Ответ», сохранит файл по тому или иному пути.