Я на разных компах пробовал. На рабочем у меня стоит лицензионный диск, все ровно выкидывает. Это не может быть связано с тем, что у Вас русский эксель, у меня английский? Вроде ж не должно было бы так быть.
Цитата DAKRAY, 15.12.2013 в 02:57, в сообщении № 14 сохраняем файл с другим именем, и пробуем нажать кнопку - она уже не работает, потому что имя файла изменилось. Если сначала "Сохранить" с текущим именем а потом "Сохранить как" с другим, закрыть и открыть тот, с текущим, все будет работать.
нет. не работает. В приложении рисунок с дэбагом, после того как даю файлу новое имя. Код не работает.
Я на разных компах пробовал. На рабочем у меня стоит лицензионный диск, все ровно выкидывает. Это не может быть связано с тем, что у Вас русский эксель, у меня английский? Вроде ж не должно было бы так быть.
Цитата DAKRAY, 15.12.2013 в 02:57, в сообщении № 14 сохраняем файл с другим именем, и пробуем нажать кнопку - она уже не работает, потому что имя файла изменилось. Если сначала "Сохранить" с текущим именем а потом "Сохранить как" с другим, закрыть и открыть тот, с текущим, все будет работать.
нет. не работает. В приложении рисунок с дэбагом, после того как даю файлу новое имя. Код не работает.DAKRAY
Вопрос: можно ли сделать что-то наподобии Workbooks("***k1.xls"), где к1 будет константой в названиях всех новых файлов, а вместо "***" будет новое имя?
[vba]
Код
Sub m() Dim TestString As String, Name As String TestString = "***k1.xls" Name = Right(TestString, 6) MsgBox Name End Sub
Вопрос: можно ли сделать что-то наподобии Workbooks("***k1.xls"), где к1 будет константой в названиях всех новых файлов, а вместо "***" будет новое имя?
[vba]
Код
Sub m() Dim TestString As String, Name As String TestString = "***k1.xls" Name = Right(TestString, 6) MsgBox Name End Sub
Матраскин, как это поможет обратиться к нужному файлу? DAKRAY, вот смотрите, макрос из 1-го сообщения темы, повыбрасывал оттуда все пока не нужное для облегчения восприятия: [vba]
Код
Private Sub CommandButton1_Click() Dim sourcerange As Range Dim destrange As Range
Set sourcerange = ThisWorkbook.ActiveSheet.Range("A1:C5") Set destrange = Workbooks.Open(ThisWorkbook.Path & "\Book2.xls").Sheets(1).Range("A6:C10")
sourcerange.Copy destrange destrange = destrange.Value destrange.Parent.Parent.Close -1 End Sub
[/vba] Открыли, скопировали, закрыли с сохранением. Что дальше?
Матраскин, как это поможет обратиться к нужному файлу? DAKRAY, вот смотрите, макрос из 1-го сообщения темы, повыбрасывал оттуда все пока не нужное для облегчения восприятия: [vba]
Код
Private Sub CommandButton1_Click() Dim sourcerange As Range Dim destrange As Range
Set sourcerange = ThisWorkbook.ActiveSheet.Range("A1:C5") Set destrange = Workbooks.Open(ThisWorkbook.Path & "\Book2.xls").Sheets(1).Range("A6:C10")
sourcerange.Copy destrange destrange = destrange.Value destrange.Parent.Parent.Close -1 End Sub
[/vba] Открыли, скопировали, закрыли с сохранением. Что дальше?KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Понедельник, 16.12.2013, 17:59
Все теперь как надо копирует)) KukIp Вы как всегда все упростили до минимума, а результат как всегда отличный. Моей благодарности нет границ. Спасибо, спасибо, спасибо!!! Правда первом файле диапазон обведен полосатой линией, как когда "Copy" делаешь! Но это пустяк.
Вставил из старого кода в конце строчку:
[vba]
Код
Private Sub CommandButton1_Click() Dim sourcerange As Range Dim destrange As Range
Set sourcerange = ThisWorkbook.ActiveSheet.Range("A1:C5") Set destrange = Workbooks.Open(ThisWorkbook.Path & "\Book2.xls").Sheets(1).Range("A6:C10")
Все теперь как надо копирует)) KukIp Вы как всегда все упростили до минимума, а результат как всегда отличный. Моей благодарности нет границ. Спасибо, спасибо, спасибо!!! Правда первом файле диапазон обведен полосатой линией, как когда "Copy" делаешь! Но это пустяк.DAKRAY
Private Sub CommandButton1_Click() Dim a, destrange As Range a = ThisWorkbook.ActiveSheet.Range("A1:C5").Value Set destrange = Workbooks.Open(ThisWorkbook.Path & "\Book2.xls").Sheets(1).Range("A6:C10") destrange = a 'destrange.Parent.Parent.Close -1 End Sub
[/vba]
Хорошо, сделайте так: [vba]
Код
Private Sub CommandButton1_Click() Dim a, destrange As Range a = ThisWorkbook.ActiveSheet.Range("A1:C5").Value Set destrange = Workbooks.Open(ThisWorkbook.Path & "\Book2.xls").Sheets(1).Range("A6:C10") destrange = a 'destrange.Parent.Parent.Close -1 End Sub