Страницы: 1
RSS
Макрос работает только в конкретной книге
 
Добрый день!, макрос работает только в той книге где находится, если макрос находится в другой книге - не работает, как изменить код что б работал если находится в другой книге ?
Код
Sub t()
Application.ScreenUpdating = False
 
Workbooks.OpenText Filename:="C:\!!!_НЕ_ТРОГАТЬ_!!!\tester.txt", Origin:=1251, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:="", FieldInfo:=Array(Array(1, xlTextFormat), Array(2, xlTextFormat)), DecimalSeparator:=".", ThousandsSeparator:=",", TrailingMinusNumbers:=False
Range("A1").CurrentRegion.Copy ThisWorkbook.Sheets(1).Range("A1")
ActiveWorkbook.Close False

Application.ScreenUpdating = True
End Sub
 
Цитата
nicex написал:
ThisWorkbook
заменить на
Код
ActiveWorkbook
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, поменял  
Код
Range("A1").CurrentRegion.Copy ActiveWorkbook.TDSheet.Range("A1") 
- макрос перестал работать
 
Цитата
nicex написал:
ActiveWorkbook.TDSheet
А где такое обращение в коде из первого сообщения? Там вроде просто к первому листу обращаемся. А обращение к кодовому имени листа возможно только из той книги, в которой сам код. Да и вряд ли в "любой книге" будет лист с таким кодовым именем, поэтому надо использовать отображаемое имя листа:
Код
ActiveWorkbook.Sheets("Имя листа").Range("A1")

или номер его положения в книге(как в исходном коде):
Код
ActiveWorkbook.Sheets(1).Range("A1")

Ну и задавая подобные вопросы не имея при этом начальных знаний хоть задачу описывайте: что надо копировать из любой книги и куда. Сейчас получается копирование из активной книги в неё же. Не уверен, что надо именно это...
Изменено: Дмитрий(The_Prist) Щербаков - 09.08.2019 20:48:47
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Есть у меня небольшое предположение, что надо такой код:
Код
Sub t()
Application.ScreenUpdating = False
dim ws as worksheet
set ws = activesheet 'запоминаем активный на момент выполнения кода лист
Workbooks.OpenText Filename:="C:\!!!_НЕ_ТРОГАТЬ_!!!\tester.txt", Origin:=1251, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:="", FieldInfo:=Array(Array(1, xlTextFormat), Array(2, xlTextFormat)), DecimalSeparator:=".", ThousandsSeparator:=",", TrailingMinusNumbers:=False
Range("A1").CurrentRegion.Copy ws.Range("A1")
ActiveWorkbook.Close False
  
Application.ScreenUpdating = True
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо работает!
 
Цитата
nicex написал: Спасибо работает!
Да, оно почти безотказно )
 
Как автомат Калашникова
Изменено: nicex - 09.08.2019 22:04:58
Страницы: 1
Наверх