Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - [решено] excel 2007

Ответить
Настройки темы
2007 - [решено] excel 2007

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет. У меня проблема следующего характера. Может поможет кто сможет.
Есть книга в Excel 2007. На листе 1 есть таблица, на листе 2 есть таблица и т.д. Структура этих таблиц одинакова, разные только данные. Помогите с макросом, который строит диаграммы по данным таблицы, которая расположена на на своем листе.

Отправлено: 13:01, 19-11-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


cergeech, действуйте примерно так:

1. Запишите макрос, строящий диаграмму по данным первого рабочего листа на первом же листе, макрорекордером.
2. В полученном макросе поправьте в коде все ссылки на первый рабочий лист так, чтобы они ссылались на активный рабочий лист.
3. Выделите нужный рабочий лист, запустите макрос на исполнение.

Например, я записал макрорекордером построение гистограммы по данным первого рабочего листа. Получился примерно такой код:
Код: Выделить весь код
Option Explicit

Sub Макрос1()
    Range("A1:B7").Select
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("A1:B7"), PlotBy:= _
        xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
    With ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
End Sub
Здесь две привязки к конкретному рабочему листу, выделенные мною красным цветом. Поправим код записанного макроса следующим образом:
Код: Выделить весь код
Option Explicit

Sub Макрос1()
    Dim objWorksheet As Worksheet
    
    Set objWorksheet = ActiveWorkbook.ActiveSheet
    
    Range("A1:B7").Select
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=objWorksheet.Range("A1:B7"), PlotBy:= _
        xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:=objWorksheet.Name
    With ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
End Sub
После этого достаточно выделить потребный рабочий лист и запустить макрос на исполнение: на активном рабочем листе будут выделены данные, и построена гистограмма — на этом же рабочем листе.

Я привёл пример, как можно наиболее простым способом получить автоматизацию повторяющихся действий при минимальных знаниях программирования на VBA и объектной модели Microsoft Excel. Более правильным подходом является корректировка полученного макроса в сторону его большей гибкости. Например, мы можем не помечать диапазон ячеек из макроса:
Код: Выделить весь код
    Range("A1:B7").Select
а оставить пометку диапазона на откуп пользователю и просто использовать уже имеющееся выделение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:44, 19-11-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - [решено] excel 2007

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - excel 2007 через коммандную строку oren_yastreb Microsoft Office (Word, Excel, Outlook и т.д.) 9 03-10-2011 08:44
2007 - Автоматическая сортировка в Excel 2007 81ruslan81 Microsoft Office (Word, Excel, Outlook и т.д.) 4 11-05-2011 17:58
2007 - Текст в Excel 2007 jazzanova Microsoft Office (Word, Excel, Outlook и т.д.) 5 12-04-2011 22:25
2007 - Проблема с сохранением файлов в Excel 2007. Shiroky Microsoft Office (Word, Excel, Outlook и т.д.) 2 20-10-2010 15:39
2007 - [архив] Microsoft Excel 2007 graverman Microsoft Office (Word, Excel, Outlook и т.д.) 100 12-12-2009 10:18




 
Переход