leskris |
Дата: Среда, 13.04.2016, 09:22 |
Сообщение № 1 |
|
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация:
0
±
Замечаний:
0% ±
Excel 2016 (Office 365) | |
[vba]Код Sub List_files()
'1 ver_m1______________________________________ Dim i, j, k, number, address, sh, r1, c1, r2, c2 As Variant Dim wb2, wb3 As String Application.ScreenUpdating = 0 With ThisWorkbook wb2 = ActiveWorkbook.Name MyPath = Range("E2").Value Mask = "stat*.xlsm" myname = Dir(MyPath & Mask, vbDirectory) Do While myname <> "" If myname <> "." And myname <> ".." And myname <> ThisWorkbook.Name Then Set wb = Workbooks.Open(Filename:=MyPath & myname) wb3 = myname wb.Sheets("Input area").Range("B3:B4").Select Selection.copy
Windows(wb2).Activate Sheets("Input area").Activate Sheets("Input area").Range("B3:B4").Select ActiveSheet.Paste Windows(wb3).Activate wb.Sheets("Input area").Range("c11:f108").Select Selection.copy Windows(wb2).Activate Sheets("Input area").Range("c11:f108").Select ActiveSheet.Paste Windows(wb3).Activate Application.DisplayAlerts = False wb.Close Application.DisplayAlerts = True End If myname = Dir Windows(wb2).Activate Call add Loop End With End Sub [/vba]
Всем привет! подскажите пожалуйста почему [vba]Код Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False [/vba] не работает а [vba][/vba] работает в данном коде. Пересмотрел уже кучу информации так и не понял почему...
[vba]Код Sub List_files()
'1 ver_m1______________________________________ Dim i, j, k, number, address, sh, r1, c1, r2, c2 As Variant Dim wb2, wb3 As String Application.ScreenUpdating = 0 With ThisWorkbook wb2 = ActiveWorkbook.Name MyPath = Range("E2").Value Mask = "stat*.xlsm" myname = Dir(MyPath & Mask, vbDirectory) Do While myname <> "" If myname <> "." And myname <> ".." And myname <> ThisWorkbook.Name Then Set wb = Workbooks.Open(Filename:=MyPath & myname) wb3 = myname wb.Sheets("Input area").Range("B3:B4").Select Selection.copy
Windows(wb2).Activate Sheets("Input area").Activate Sheets("Input area").Range("B3:B4").Select ActiveSheet.Paste Windows(wb3).Activate wb.Sheets("Input area").Range("c11:f108").Select Selection.copy Windows(wb2).Activate Sheets("Input area").Range("c11:f108").Select ActiveSheet.Paste Windows(wb3).Activate Application.DisplayAlerts = False wb.Close Application.DisplayAlerts = True End If myname = Dir Windows(wb2).Activate Call add Loop End With End Sub [/vba]
Всем привет! подскажите пожалуйста почему [vba]Код Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False [/vba] не работает а [vba][/vba] работает в данном коде. Пересмотрел уже кучу информации так и не понял почему...leskris
Сообщение отредактировал leskris - Среда, 13.04.2016, 09:24 |
|
| Ответить
|
_Boroda_ |
Дата: Среда, 13.04.2016, 09:52 |
Сообщение № 2 |
|
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS | |
Selection вообще по возможности желательно не использовать. Вот такой пример посмотрите [vba]Код Лист2.Range("A1:C5").Copy Лист1.Range("A1").PasteSpecial (xlPasteValues) [/vba] Для Вашего кода это примерно так [vba]Код wb.Sheets("Input area").Range("B3:B4").Copy wb2.Sheets("Input area").Range("B3").PasteSpecial (xlPasteValues) [/vba]
Selection вообще по возможности желательно не использовать. Вот такой пример посмотрите [vba]Код Лист2.Range("A1:C5").Copy Лист1.Range("A1").PasteSpecial (xlPasteValues) [/vba] Для Вашего кода это примерно так [vba]Код wb.Sheets("Input area").Range("B3:B4").Copy wb2.Sheets("Input area").Range("B3").PasteSpecial (xlPasteValues) [/vba]_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
|
|
| Ответить
|
SLAVICK |
Дата: Среда, 13.04.2016, 09:55 |
Сообщение № 3 |
|
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019 | |
Вложите примеры книг из которой и в какую копируете. Удалите значения. На пустых книгах у меня работает.
Может у Вас объеденные ячейки есть - тогда xlPasteValues не сработает. и вообще лучше не использовать Select а обращаться к диапазону напрямую.
Вложите примеры книг из которой и в какую копируете. Удалите значения. На пустых книгах у меня работает.
Может у Вас объеденные ячейки есть - тогда xlPasteValues не сработает. и вообще лучше не использовать Select а обращаться к диапазону напрямую.SLAVICK
Иногда все проще чем кажется с первого взгляда.
|
|
| Ответить
|
leskris |
Дата: Среда, 13.04.2016, 10:22 |
Сообщение № 4 |
|
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация:
0
±
Замечаний:
0% ±
Excel 2016 (Office 365) | |
Все работает, спасибо! я изначально пытался напрямую копировать но мне писало метод copy завершен не верно, наверное я что-то упустил тогда.
Все работает, спасибо! я изначально пытался напрямую копировать но мне писало метод copy завершен не верно, наверное я что-то упустил тогда.leskris
|
|
| Ответить
|