Как постоить диаграмму в Excel
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.249] |
|
|
Правила раздела Visual Basic: Общие вопросы
FAQ Сайта
FAQ Раздела
Кладовка
Наши Исходники
API-Guide
Поиск по Разделу
MSDN Library Online
Google
Как постоить диаграмму в Excel
|
Сообщ.
#1
,
|
|
|
|
Доброго времени суток.
Сталкнулся с необходимостью обрабатывать данные, сохранять их в Excel и там же по ним строить диаграмму. Записывать данные получается, а с диаграммой просто беда:( Может кто поможет и пояснит как её постоить на примере столбца данных? Заранее спасибо |
|
Сообщ.
#2
,
|
|
|
|
Попробуйте почитать справку и пояснения мастера построения диаграмм (который, кстати, тоже имеет кнопку вызова справки).
|
|
Сообщ.
#3
,
|
|
|
|
заходишь в Excel дальше - вид/панель инструментов/ ставиш галочку на Visual Basic
дальше нажимаешь кнопочку "Записать макрос" - строишь график вручную - нажимаешь кнопочку "Остановить макрос" - нажимаешь кнопочку " редактор Visual Basic" и смотришь код который построит диаграмму по твоим данным |
|
Сообщ.
#4
,
|
|
|
|
макрос получился:
Columns("A1:A10").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("Лист1!$A1:$A10") ActiveChart.ChartType = xlLi после того как вставил в проект, выдаёт ошибку: Compile error: Sub or Function not defined для Columns |
|
Сообщ.
#5
,
|
|
|
|
Цитата iamfortune @ после того как вставил в проект, выдаёт ошибку: Compile error: Sub or Function not defined для Columns Правильно. Потому что не указано, какие именно Columns. |
|
Сообщ.
#6
,
|
|
|
|
Цитата iamfortune @ макрос получился: Columns("A1:A10").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("Лист1!$A1:$A10") ActiveChart.ChartType = xlLi после того как вставил в проект, выдаёт ошибку: Compile error: Sub or Function not defined для Columns конечно, байсик же незнает что такое Columns, ему надо обьяснить тоесть ![]() ![]() Set objExcel = Createobject("Excel.application") objExcel.Worksheets(1).Activate 'можно присобачить With objExcel .Columns("A1:A10").Select 'данные уже там должны быть .ActiveSheet.Shapes.AddChart.Select .ActiveChart.SetSourceData Source:=Range("Лист1!$A1:$A10") .ActiveChart.ChartType = xlLi 'xlLi - бейсик незнает что ето, замени числом или в референсах подключи ексель End With вроде так, |
|
Сообщ.
#7
,
|
|
|
|
.Columns("A1:A10").Select 'данные уже там должны быть
на эту строчку выдаёт 1004 ошибку В референсах ексель подключён не могли бы выложить простенький пример? |
|
Сообщ.
#8
,
|
|
|
|
Цитата Бяка @ на эту строчку выдаёт 1004 ошибку Конечно, ошибка синтаксиса. Цитата iamfortune @ не могли бы выложить простенький пример? А справку читать и смотреть примеры в ней уже немодно? |
|
Сообщ.
#9
,
|
|
|
|
Цитата iamfortune @ .Columns("A1:A10").Select 'данные уже там должны быть на эту строчку выдаёт 1004 ошибку В референсах ексель подключён ну уж если нато пошло то не Columns а Range тоесть Range("A1:A10").Select у Columns другой синтаксиса Columns("A:A").Select или Columns(1).Select только эта строчка помоему вообще лишняя Добавлено Цитата iamfortune @ не могли бы выложить простенький пример? на, тупо по макросу сделал ![]() ![]() Private Sub Command1_Click() Dim objExcel As Object Set objExcel = CreateObject("Excel.Application") With objExcel .Workbooks.Add .Worksheets(1).Activate For i = 1 To 30 .Worksheets(1).Cells(i, 1) = i .Worksheets(1).Cells(i, 2) = Rnd(i) * 10 Next .Charts.Add .Visible = True With .ActiveChart .ChartType = xlLine .SetSourceData Source:=Sheets("Лист1").Range("B1:B30"), PlotBy:=xlColumns .Location Where:=xlLocationAsNewSheet .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "время" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "данные1" .HasTitle = True .HasAxis(xlCategory, xlPrimary) = True .HasAxis(xlValue, xlPrimary) = True .Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic '.HasMajorGridlines = True '.HasMinorGridlines = False With .Axes(xlValue) .HasMajorGridlines = True .HasMinorGridlines = False End With .HasDataTable = False .PlotArea.Select End With With .Selection.Border .ColorIndex = 16 .Weight = xlThin .LineStyle = xlContinuous End With With .Selection.Interior .ColorIndex = 2 .PatternColorIndex = 1 .Pattern = xlSolid End With .ActiveChart.SeriesCollection(1).Select With .Selection.Border .ColorIndex = 41 .LineStyle = xlContinuous End With With .Selection .MarkerBackgroundColorIndex = xlAutomatic .MarkerForegroundColorIndex = xlAutomatic .MarkerStyle = xlNone .Smooth = False .MarkerSize = 7 .Shadow = False End With .ActiveChart.SeriesCollection(1).Select With .Selection.Border .ColorIndex = 57 .LineStyle = xlContinuous End With With .Selection .MarkerBackgroundColorIndex = xlNone .MarkerForegroundColorIndex = xlNone .MarkerStyle = xlNone .Smooth = False .MarkerSize = 3 .Shadow = False End With .ActiveChart.Axes(xlValue).MajorGridlines.Select With .Selection.Border .ColorIndex = 57 .Weight = xlHairline .LineStyle = xlDot End With With .Selection.Border .ColorIndex = 57 .Weight = xlHairline .LineStyle = xlDot End With .ActiveChart.Axes(xlCategory).Select With .Selection.TickLabels .Alignment = xlCenter .Offset = 100 .ReadingOrder = xlContext .Orientation = xlUpward End With With .ActiveChart.Axes(xlCategory) .CrossesAt = 1 .TickLabelSpacing = 1 .TickMarkSpacing = 1 .AxisBetweenCategories = True .ReversePlotOrder = False End With .ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="График_1" .Sheets("График_1").Select .ActiveWindow.Zoom = 80 End With Set objExcel = Nothing End Sub с тебя пирожок |
|
Сообщ.
#10
,
|
|
|
|
Итить-колотить:)
Заработало! ох уж этот Excel.. Согласен на пиво:) Добавлено Всем спасибо |