Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Запуск макроса из персональной книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запуск макроса из персональной книги (Макросы/Sub)
Запуск макроса из персональной книги
Garik007 Дата: Вторник, 21.11.2017, 13:54 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
Добрый день. Из текущей книги переместил в персональную книгу следующий макрос:
[vba]
Код

        Range("A10") = Range("H10")
        [данные1] = [данные1а].Value

        For x = 10 To 10
        q = Int(Len(Cells(x, 1).Value) / 85) + 1
        Rows(x).RowHeight = 15 * q
    Next x

        s = Range("I10").Value: j = Len(s)
        With Range("A10")
        .Font.Bold = False
        For Each r In .Cells
            i = InStr(r, s)
            If i Then r.Characters(i, j).Font.Bold = True
    Next
    End With
[/vba]
При попытке его запустить выскакивает 438 ошибка. Добавление строчки With ActiveWorkbook.Sheet("пример") ни к чему не приводит. Как это можно исправить?
 
Ответить
СообщениеДобрый день. Из текущей книги переместил в персональную книгу следующий макрос:
[vba]
Код

        Range("A10") = Range("H10")
        [данные1] = [данные1а].Value

        For x = 10 To 10
        q = Int(Len(Cells(x, 1).Value) / 85) + 1
        Rows(x).RowHeight = 15 * q
    Next x

        s = Range("I10").Value: j = Len(s)
        With Range("A10")
        .Font.Bold = False
        For Each r In .Cells
            i = InStr(r, s)
            If i Then r.Characters(i, j).Font.Bold = True
    Next
    End With
[/vba]
При попытке его запустить выскакивает 438 ошибка. Добавление строчки With ActiveWorkbook.Sheet("пример") ни к чему не приводит. Как это можно исправить?

Автор - Garik007
Дата добавления - 21.11.2017 в 13:54
buchlotnik Дата: Вторник, 21.11.2017, 13:56 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
[vba]
Код
[данные1]
[/vba]а это что за зверь? он точно есть на активном листе? На какой строчке ошибка вылетает?
 
Ответить
Сообщение[vba]
Код
[данные1]
[/vba]а это что за зверь? он точно есть на активном листе? На какой строчке ошибка вылетает?

Автор - buchlotnik
Дата добавления - 21.11.2017 в 13:56
Garik007 Дата: Вторник, 21.11.2017, 14:15 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
а это что за зверь?

Это из Диспетчера имен несколько ячеек. Ошибка возникает на первой же строчке. Если его запускать из обычной книги все проходит без вопросов.
 
Ответить
Сообщение
а это что за зверь?

Это из Диспетчера имен несколько ячеек. Ошибка возникает на первой же строчке. Если его запускать из обычной книги все проходит без вопросов.

Автор - Garik007
Дата добавления - 21.11.2017 в 14:15
K-SerJC Дата: Вторник, 21.11.2017, 14:56 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Ошибка возникает на первой же строчке.

а вы из персональной книги пытаетесь обратиться к какому листу?
если первую строку заменить:
[vba]
Код
ActiveSheets.Range("A10") = ActiveSheets.Range("H10")
[/vba]
ошибка пропадает?


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Вторник, 21.11.2017, 14:56
 
Ответить
СообщениеДобрый день!
Ошибка возникает на первой же строчке.

а вы из персональной книги пытаетесь обратиться к какому листу?
если первую строку заменить:
[vba]
Код
ActiveSheets.Range("A10") = ActiveSheets.Range("H10")
[/vba]
ошибка пропадает?

Автор - K-SerJC
Дата добавления - 21.11.2017 в 14:56
Garik007 Дата: Вторник, 21.11.2017, 15:10 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
ошибка пропадает?

Нет, пишет "Object doesn`t support this property or method".
Думал, что намудрил с рабочим файлом, но на вновь созданной книге тоже самое.
 
Ответить
Сообщение
ошибка пропадает?

Нет, пишет "Object doesn`t support this property or method".
Думал, что намудрил с рабочим файлом, но на вновь созданной книге тоже самое.

Автор - Garik007
Дата добавления - 21.11.2017 в 15:10
_Boroda_ Дата: Вторник, 21.11.2017, 15:47 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Это точно весь макрос? Ничего больше нет? Ошибка 438 - Объект не поддерживает это свойство или метод. У меня Ваш макрос нормально отрабатывае и из книги, и из Персонала (конечно, при наличии в активной книге нужных имен)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЭто точно весь макрос? Ничего больше нет? Ошибка 438 - Объект не поддерживает это свойство или метод. У меня Ваш макрос нормально отрабатывае и из книги, и из Персонала (конечно, при наличии в активной книге нужных имен)

Автор - _Boroda_
Дата добавления - 21.11.2017 в 15:47
Garik007 Дата: Вторник, 21.11.2017, 16:52 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
Это точно весь макрос? Ничего больше нет?

Есть еще:
[vba]
Код

Sub abc()
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
  ' пробовал еще добавлять
      With ActiveSheets.Sheets("пример")
      ActiveSheets.Range("A10") = ActiveSheets.Range("H10") ' с ActiveSheets. и без них
      ActiveSheets.[данные1] = ActiveSheets.[данные1а].Value ' с ActiveSheets. и без них
End Sub
[/vba]
Сейчас попробовал вставить код из моего первого сообщения: ошибки пропали, но и ничего не происходит при вызове из текущей книги макроса, находящегося в Персональной книге (текст не переносится, жирным не выделяется, высота строки не меняется). Опять повторюсь при вызове макроса из текущей книги все работает. В каком месте у меня могут быть кривые руки.
К сообщению приложен файл: 7283590.jpg (93.7 Kb)
 
Ответить
Сообщение
Это точно весь макрос? Ничего больше нет?

Есть еще:
[vba]
Код

Sub abc()
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
  ' пробовал еще добавлять
      With ActiveSheets.Sheets("пример")
      ActiveSheets.Range("A10") = ActiveSheets.Range("H10") ' с ActiveSheets. и без них
      ActiveSheets.[данные1] = ActiveSheets.[данные1а].Value ' с ActiveSheets. и без них
End Sub
[/vba]
Сейчас попробовал вставить код из моего первого сообщения: ошибки пропали, но и ничего не происходит при вызове из текущей книги макроса, находящегося в Персональной книге (текст не переносится, жирным не выделяется, высота строки не меняется). Опять повторюсь при вызове макроса из текущей книги все работает. В каком месте у меня могут быть кривые руки.

Автор - Garik007
Дата добавления - 21.11.2017 в 16:52
RAN Дата: Вторник, 21.11.2017, 18:35 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
With ActiveSheets.Sheets("пример")
ActiveSheets
Где это видано, где это слыхано, где, наконец, это выкопано?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеWith ActiveSheets.Sheets("пример")
ActiveSheets
Где это видано, где это слыхано, где, наконец, это выкопано?

Автор - RAN
Дата добавления - 21.11.2017 в 18:35
Garik007 Дата: Вторник, 21.11.2017, 20:47 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
ActiveSheets
Где это видано, где это слыхано, где, наконец, это выкопано?

отсюда
если первую строку заменить:

ActiveSheets.Range("A10") = ActiveSheets.Range("H10")

Проблема с перемещением текста решилась вот так:
[vba]
Код
ActiveSheet.Range("A10") = ActiveSheet.Range("F10")
[/vba]
Осталось решить это:
[vba]
Код

    For x = 10 To 10
        q = Int(Len(Cells(x, 1).Value) / 85) + 1
        Rows(x).RowHeight = 15 * q
    Next x

        s = Range("F10").Value: j = Len(s)
        With Range("A10")
        .Font.Bold = False
        For Each r In .Cells
            i = InStr(r, s)
            If i Then r.Characters(i, j).Font.Bold = True
    Next
    End With
[/vba]
Вариант использования
[vba]
Код
With ActiveSheet
...
End With
[/vba]
упорно отказывается выполняться.
 
Ответить
Сообщение
ActiveSheets
Где это видано, где это слыхано, где, наконец, это выкопано?

отсюда
если первую строку заменить:

ActiveSheets.Range("A10") = ActiveSheets.Range("H10")

Проблема с перемещением текста решилась вот так:
[vba]
Код
ActiveSheet.Range("A10") = ActiveSheet.Range("F10")
[/vba]
Осталось решить это:
[vba]
Код

    For x = 10 To 10
        q = Int(Len(Cells(x, 1).Value) / 85) + 1
        Rows(x).RowHeight = 15 * q
    Next x

        s = Range("F10").Value: j = Len(s)
        With Range("A10")
        .Font.Bold = False
        For Each r In .Cells
            i = InStr(r, s)
            If i Then r.Characters(i, j).Font.Bold = True
    Next
    End With
[/vba]
Вариант использования
[vba]
Код
With ActiveSheet
...
End With
[/vba]
упорно отказывается выполняться.

Автор - Garik007
Дата добавления - 21.11.2017 в 20:47
Hugo Дата: Вторник, 21.11.2017, 21:09 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Макрос в персональной книге куда кинули? Вижу что вроде не туда куда положено...
Если моя лупа не врёт - никакие активации листов других книг тут не помогут...


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Вторник, 21.11.2017, 21:17
 
Ответить
СообщениеМакрос в персональной книге куда кинули? Вижу что вроде не туда куда положено...
Если моя лупа не врёт - никакие активации листов других книг тут не помогут...

Автор - Hugo
Дата добавления - 21.11.2017 в 21:09
Garik007 Дата: Вторник, 21.11.2017, 21:24 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
Макрос в персональной книге куда кинули?

В Microsoft Excel Objects -> Macros (All)
 
Ответить
Сообщение
Макрос в персональной книге куда кинули?

В Microsoft Excel Objects -> Macros (All)

Автор - Garik007
Дата добавления - 21.11.2017 в 21:24
Hugo Дата: Вторник, 21.11.2017, 21:25 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Что это? Где это? :)
У меня такого нет...
Ааа.. это обычный лист, у меня для листов иконка другая, не узнал... ещё и название :)
В стандартный модуль нужно класть такие макросы, это азы.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Вторник, 21.11.2017, 22:54
 
Ответить
СообщениеЧто это? Где это? :)
У меня такого нет...
Ааа.. это обычный лист, у меня для листов иконка другая, не узнал... ещё и название :)
В стандартный модуль нужно класть такие макросы, это азы.

Автор - Hugo
Дата добавления - 21.11.2017 в 21:25
Garik007 Дата: Среда, 22.11.2017, 10:28 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
Hugo, спасибо, переместил в стандартный модуль и все заработало как нужно.
 
Ответить
СообщениеHugo, спасибо, переместил в стандартный модуль и все заработало как нужно.

Автор - Garik007
Дата добавления - 22.11.2017 в 10:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запуск макроса из персональной книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!