Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
OLEGOFF
996 / 458 / 115
Регистрация: 27.02.2013
Сообщений: 1,323
1

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

12.03.2016, 10:53. Просмотров 1006. Ответов 2
Метки нет (Все метки)

Уважаемые форумчане,кто может подсказать почему макрос при запуске с кнопки созданной на панели инструментов работает неправильно.(не отрабатывает Offset по вертикали).
При запуске с кнопки на листе всё работает.
Код макроса
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub PrintRGBColorPalette()
    '
    ' Отображение RGB-кодов палитры в EXCEL
    '
    ' В каждой книге Microsoft Excel имеется палитра из 56 цветов,
    ' которые могут использоваться в ячейках, шрифтах,
    ' линиях сетки и графических объектах листа, а также линиях и элементах
    '
    ' Скрипт взят из книги:
    ' Кертис Фрай - "Хитрости Excel"
    '
    Dim intNumColor As Integer
    Dim rgbVal As Long
    
    Range("A1").Select
    
    With ActiveCell
        .Formula = "Color"
        .Offset(0, 1).Value = "Index"
        .Offset(0, 3).Value = "Red"
        .Offset(0, 4).Value = "Green"
        .Offset(0, 5).Value = "Blue"
        .Offset(1, 0).Activate
    End With
    
    For intNumColor = 1 To 56
        With ActiveCell
            .Interior.ColorIndex = intNumColor
            rgbVal = .Interior.Color
            
            .Offset(0, 1).Formula = .Interior.ColorIndex
            .Offset(0, 3).Value = rgbVal And &HFF
            .Offset(0, 4).Value = rgbVal \ &H100 And &HFF
            .Offset(0, 5).Value = rgbVal \ &H10000 And &HFF
            .Offset(1, 0).Activate
        End With
    Next intNumColor
End Sub
Код создания кнопки на панели инструментов
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Workbook_Open()
    On Error Resume Next
    Application.CommandBars.Add(Name:="Название панели инструментов").Visible = True
    Set b = Application.CommandBars("Название панели инструментов").Controls.Add(Type:= _
        msoControlButton, ID:=2950, Before:=1, Temporary:=True)
    b.Style = msoButtonCaption
    b.Caption = "Palette"
    b.TooltipText = "Описание назначения кнопки"
    b.OnAction = "PrintRGBColorPalette()"
End Sub
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2016, 10:53
Ответы с готовыми решениями:

Убрать панели инструментов Excel при запуске файла
Как в excel сделать, чтобы при открытии файла полностью убирались все панели инструментов, а при...

Запуск макроса с панели инструментов
Такой вопрос: сделал макрос в Statistica 8, но почему-то при выборе через Tools -> Macro -> Macros...

Вызов макроса с панели инструментов
Такие дела, ребята, на работе написал элементарный макрос, состоящий из одной процедуры, на панель...

Работа с textbox на панели инструментов
Итак проблема вот в чем... Создаем текстбокс на собственной панели инструментов Dim tsumm As...

2
pashulka
3540 / 1932 / 814
Регистрация: 01.12.2010
Сообщений: 3,882
12.03.2016, 11:04 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Visual Basic
1
b.OnAction = "PrintRGBColorPalette"
0
OLEGOFF
996 / 458 / 115
Регистрация: 27.02.2013
Сообщений: 1,323
12.03.2016, 11:12  [ТС] 3
pashulka,большое спасибо.

Не по теме:

А я уже весь мозг сломал

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2016, 11:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка при запуске макроса
Помогите найти ошибку. Ошибка возникает в данном участке кода. ActiveWorkbook.Names.Add...

Зависает при запуске макроса
Столкнулся с такой проблемой макрос работал нормально но сегодня при его запуске он грузит грузит и...

Падает Excel при запуске макроса
Доброго времени суток, уважаемые гуру. Застрял на одном проекте. Пишу прогу на работу для себя. Всё...

Выдает ошибку при запуске макроса!
Создать программный код, в котором ввод данных осуществляется функцией InputBox. Использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.