powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / не работает копи-паст VBA
6 сообщений из 6, страница 1 из 1
не работает копи-паст VBA
    #36863230
fedoamx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста! Я новичок в VB и у меня не работает код. Пишет ошибку №9(Subscript out of range). не могу понять как исправить.
Код: plaintext
1.
2.
3.
4.
Application.DisplayAlerts = False
    Application.Workbooks.Open (path)
 Application.ActiveWorkbooks(path).Sheets( 1 ).Range("A1:H147").Copy 'пишет, что здесь ошибка
        Application.Workbooks(ipath).Sheets(strNameSh).Range("A1:H147").Paste
            Application.ActiveWorkbooks(path).Close


ipath(путь книги куда нужно копировать) задается во время определения формы
то есть по моим соображениям ipath будет создаваться тогда,когда будет открываться книга

Код: plaintext
1.
2.
Sub UserForm_Initialize()
ipath = ActiveWorkbook.path + "\Gisto.xlsm"


path(путь книги с которой нужно скопировать первый лист) задается так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
MsgBox "в указаном листе должен быть один лист"
Set fd = Application.FileDialog( 3 )
    With fd
        .AllowMultiSelect = False
        .Show
        ' Отображает путь
            If .SelectedItems.Count >  0  Then 
            Me.TextBox1.Value = .SelectedItems( 1 ) 'записывает текст в строку
            Else
            Exit Sub
            End If
    End With
    path = fd.SelectedItems( 1 ) ' глобальной переменной присваивает путь
    End Sub


Вроде все описал понятно.
...
Рейтинг: 0 / 0
не работает копи-паст VBA
    #36863336
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
fedoamxПомогите пожалуйста! Я новичок в VB и у меня не работает код. Пишет ошибку №9(Subscript out of range). не могу понять как исправить.
Код: plaintext
1.
2.
3.
4.
Application.DisplayAlerts = False
    Application.Workbooks.Open (path)
 Application.ActiveWorkbooks(path).Sheets( 1 ).Range("A1:H147").Copy 'пишет, что здесь ошибка
        Application.Workbooks(ipath).Sheets(strNameSh).Range("A1:H147").Paste
            Application.ActiveWorkbooks(path).Close
...
что это воопще за - ActiveWorkbooks ??
есть - Workbooks
и есть ActiveWorkbook без СЫ (или это какой-то загон 2007-го Экселя ?)

воопщем, совет - нежалейте переменных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Application.DisplayAlerts = False
dim wb1 As Object
dim wb2 As Object

set wb1  = Application.Workbooks.Open (path)
set wb2  = Application.Workbooks.Open (ipath)

wb1.Sheets( 1 ).Range("A1:H147").Copy 'пишет, что здесь ошибка

wb2.Sheets(strNameSh).Range("A1:H147").Paste
wb1.Close
...
Рейтинг: 0 / 0
не работает копи-паст VBA
    #36863448
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И работать надо с Worksheets() а не с Sheets(). Эти коллекции не синонимы.
Если у тебя первым листом в книге будет график, то Sheets(1).Range упадет.
...
Рейтинг: 0 / 0
не работает копи-паст VBA
    #36864059
fedoamx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

Спасибо за совет.
...
Рейтинг: 0 / 0
не работает копи-паст VBA
    #36864382
fedoamx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё,

спасибо.
добился копирования только таким способом. Не


wb1.Worksheets(1).Range("A1:H147").Copy
Windows(ipath).Activate
Sheets(strNameSh).Select
Range("A1:H147").Select
ActiveSheet.Paste
wb1.Close
...
Рейтинг: 0 / 0
не работает копи-паст VBA
    #36865084
fedoamx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще дело в том.что Range не имеет свойства Paste, а только PasteSpecial
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / не работает копи-паст VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]