powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / построение круговой диаграммы
25 сообщений из 39, страница 1 из 2
построение круговой диаграммы
    #37545006
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, где ошибка. Не строится круговая диаграмма. На листе 1 в ячейках A1:A10 находятся данные. Задаю диапазон как R1C1:R10C1. В результате получается пустая рамка без графика и сообщение об ошибке в строках 25-32 :
Номера строк для наглядности, в коде я их не набирала.

Код: plaintext
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.
 1 :Sub MakeSaleSRpt_Chart()                
 2 :	'Запрашивает имя листа, содержащего исходные данные,
 3 :	'затем запрашивает диапазон ячеек с данными для диаграммы.
 4 :	'Далее запрашивается имя листа для помещения в него круговой
 5 :	'диаграммы. Затем процедура создает диаграмму и использует
 6 :	'метод ChartWizard для получения круговой диаграммы
 7 :
 8 :	Const sTitle = "суммарный смыв"
 9 :
 10 :    Dim SrcShtName As String
 11 :    Dim SourceRng As String
 12 :	Dim DestShtName As String
           13 :
 14 :	'получить имя исходного листа
 15 :	SrcShtName = InputBox(prompt:= _
 16 :	"Введите имя листа,  " & _
 17 :	"содержащего данные для диаграммы",  _
 18 :	Title:=sTitle)
 19 :    'выбор листа и создание диаграммы
 20 :   Sheets (DestShtName) .Select	
 21 : ActiveSheet.ChartObjects.Add( 96 ,   37 . 5 ,  234 ,  111 ).Select 
 22 :
 23 : 'использование метода ChartWizard для создания диаграммы 
 24 :    With Sheets(SrcShtName)
 25 :    ActiveChart, ChartWizard Source:=.Range(SourceRng),  _
 26 :                                     Gallery:=xlPie,
 27 :	                                  Format:= 7 ,
 28  :		                         PlotBy: =xIColumns,  _
 29 :	                                 CategoryLabels:= 1 ,  _
 30 :	                                 SeriesLabels:= 1 ,  _
 31 :	                                 HasLegend:= 1 , _  
 32 :	                                 Title:="Суммарный смыв"
 33 :  End With        
 34 :  End Sub


Как правильно задать диапазон исходных данных при построении круговой диаграммы?

Модератор: Учимся испольтзовать тэги для оформления кода
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545174
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отсутствует знак подчеркивания в строках 26-27
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545356
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ! Набираю знак подчёркивания, всё равно не работает, показывает в этой части ту же ошибку

ActiveChart.ChartWizard Source:=Range(SourseRng), _
Gallery:=xlPie, _
Format:=7, _
PlotBy:=xlColumns, _
CategoryLabels:=1, _
SeriesLabels:=1, _
HasLegend:=1, _
Title:="Суммарный смыв"
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545361
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lara607ту же ошибкуту же, что и где? Может все-таки откроете тайну и напишете ее текст?
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545362
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще, имейте уважение к участникам,
1) если кто-то захочет и попробует вам помочь, он при копировании текста вынужден будет стирать все ваши циферки, чтобы запустить программу
2) я уже один раз попросил оформлять код тэгами. Изучите faq
3) Изучите и правила форума - нужно приводить текст ошибки, кажется это очевидно
4) а почему, собственно текст претерпевает трансформацию и вы об этом не говорите
было ActiveChart, ChartWizard (тоже ошибка)
стало ActiveChart.ChartWizard
в тексте есть еще подобные ошибки, однако теперь неясно, исправлены они или нет
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545415
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Мне вчера понадобилось выяснить, где хранится история icq (сам кипом пользуюсь), и скрестив пальцы, я пошел по первой ссылке...
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545506
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст ошибки в части кода 'использование метода ChartWizard для создания диаграммы:

Run-time error '1004':
Method 'Range' of object'_Global'failed

Sub MakeSalesRpt_Chart()
'Запрашивает имя листа, содержащего исходные данные,
'затем запрашивает диапазон ячеек с данными для диаграммы.
'Далее запрашивается имя листа для помещения в него круговой
'диаграммы. Затем процедура создает диаграмму и использует
'метод ChartWizard для получения круговой диаграммы

Const sTitle = "суммарный смыв"

Dim SrcShtName As String
Dim SourceRng As String
Dim DestShtName As String

'получить имя исходного листа
SrcShtName = InputBox(prompt:= _
"Введите имя листа," & _
"содержащего данные для диаграммы", _
Title:=sTitle)

'выбор листа, на который указал пользователь
Sheets(SrcShtName).Select

'получить диапазон (с данными)
SourceRng = InputBox(prompt:= _
"Введите диапазон с данными для диаграммы, " & _
"используя R1C1 формат:", _
Title:=sTitle)

'получить имя листа для помещения в него диаграммы
DestShtName = InputBox(prompt:="Введите имя листа " & _
"для диаграммы:", _
Title:=sTitle)
'выбор листа и создание диаграммы
Sheets(DestShtName).Select
ActiveSheet.ChartObjects.Add(96, 37.5, 234, 111).Select
ActiveSheet.Cells.Select
'использование метода ChartWizard для создания диаграммы
With Sheets(SrcShtName)
ActiveChart.ChartWizard Source:=Range(SourseRng), _
Gallery:=xlPie, _
Format:=7, _
PlotBy:=xlColumns, _
CategoryLabels:=1, _
SeriesLabels:=1, _
HasLegend:=1, _
Title:="Суммарный смыв"

End With
End Sub
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545513
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
няя, неблагодари :)
Sub MakeSalesRpt_Chart()
'Запрашивает имя листа, содержащего исходные данные,
'затем запрашивает диапазон ячеек с данными для диаграммы.
'Далее запрашивается имя листа для помещения в него круговой
'диаграммы. Затем процедура создает диаграмму и использует
'метод ChartWizard для получения круговой диаграммы

Const sTitle = "суммарный смыв"

Dim SrcShtName As String
Dim SourceRng As String
Dim DestShtName As String

'получить имя исходного листа
SrcShtName = InputBox(prompt:= _
"Введите имя листа," & _
"содержащего данные для диаграммы", _
Title:=sTitle)

'выбор листа, на который указал пользователь
Sheets(SrcShtName).Select

'получить диапазон (с данными)
SourceRng = InputBox(prompt:= _
"Введите диапазон с данными для диаграммы, " & _
"используя R1C1 формат:", _
Title:=sTitle)

'получить имя листа для помещения в него диаграммы
DestShtName = InputBox(prompt:="Введите имя листа " & _
"для диаграммы:", _
Title:=sTitle)
'выбор листа и создание диаграммы
Sheets(DestShtName).Select
ActiveSheet.ChartObjects.Add(96, 37.5, 234, 111).Select
ActiveSheet.Cells.Select
'использование метода ChartWizard для создания диаграммы
With Sheets(SrcShtName)
ActiveChart.ChartWizard Source:=.Range(SourseRng), _
Gallery:=xlPie, _
Format:=7, _
PlotBy:=xlColumns, _
CategoryLabels:=1, _
SeriesLabels:=1, _
HasLegend:=1, _
Title:="Суммарный смыв"

End With
End Sub
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545539
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

От текста Вашего сообщения остался только конец - "...не благодари", что Вы написали?
У меня график по-прежнему не строится, я ввожу диапазон данных R1C1:R5C1 (данные для диаграммы у меня в ячейках A1:А5). Может быть не правильно ввожу диапазон данных в формате R1C1?
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545542
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lara607qwerty112,

От текста Вашего сообщения остался только конец - "...не благодари", что Вы написали?
У меня график по-прежнему не строится, я ввожу диапазон данных R1C1:R5C1 (данные для диаграммы у меня в ячейках A1:А5). Может быть не правильно ввожу диапазон данных в формате R1C1?
>> что Вы написали?

всмотритесь внимательней

>> Может быть ...

может ...
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545547
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,
Есть еще ошибочка, в том числе в твоем коде
решение тут: FAQ

Автору: ваш код почему-то претерпевает изменения, появляются строки, которых не было, ошибки, которых не было. Вы слышали о копипасте? Код можно скопировать в форум, а не набирать его в форуме каждый раз заново.

Обоим: предупреждаю еще раз насчет тэгов SRC - используем для оформления кода!
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545549
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro...
Обоим: предупреждаю еще раз насчет тэгов SRC - используем для оформления кода!
я больше не буду )

ТС, ваша очередь ...
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545552
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Спасибо, попробую.
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37545990
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть диапазон значений в столбце A в ячейках от первой до десятой. Правильно ли в приведённом ниже коде задан аргумент функции Range?

Код: plaintext
ActiveChart, ChartWizard Source:=.Range("A1:A10"),  _
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546027
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аргумент задан правильно

неправильно другое - что вы вообще не вникаете в то, что пишете (или переписываете что ли из чужой тетрадки). Посмотрите внимательно на мое сообщение выше, касающееся именно этой строки.
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546186
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Доброе утро!
Да, извините, я скопировала строку из старого кода, в котором была запятая. Я это заметила, когда уже отправила, не стала снова отправлять. Но и в этом варианте график не строится. У меня есть файл Microsoft Excel, в котором написан макрос для построения круговой диаграммы.На листе 1 исходные данные в ячейках A1:A10. На листе 2 хочу построить круговую диаграмму. При выполнении макроса я сначала в окне InputBox указываю на лист1, в котором находятся исходные данные, затем задаю диапазон, используя R1C1 формат(этот диапазон я набираю как R1C1:R10C1) также в окне InputBox, затем на следующем шаге указываю лист2, на котором необходимо разместить диаграмму. Всё это работает, но диаграмма не строится, а появляется на листе 2 пустая рамка, верно ли я задаю диапазон? Не сочтите за дерзость, может быть Вы сами попробуете построить график и выяснить, в чём моя ошибка? Спасибо за совет по поводу явного объявления переменных, но и это не помогло. Вот вчерашняя строка:

Код: plaintext
ActiveChart.ChartWizard Source:=Range(SourceRng), _

А вот код, который я не писала сама, а взяла не "из чужой тетрадки", а из учебника, по которому разбираю примеры.
Надеюсь на этот раз новые ошибки не выплывут. Если появятся, то исправьте их, пожалуйста. Спасибо за Ваше участие и терпение. Надеюсь на Вашу помощь. С уважением


Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
Option Explicit

Sub MakeSaleSRpt_Chart()                
	'Запрашивает имя листа, содержащего исходные данные,
	'затем запрашивает диапазон ячеек с данными для диаграммы.
	'Далее запрашивается имя листа для помещения в него круговой
	'диаграммы. Затем процедура создает диаграмму и использует
	'метод ChartWizard для получения круговой диаграммы

	Const sTitle = "суммарный смыв"
          
    Dim SrcShtName As String
    Dim SourceRng As String
    Dim DestShtName As String          
	'получить имя исходного листа
	SrcShtName = InputBox(prompt:= _
 "Введите имя листа,  " & _
	"содержащего данные для диаграммы",  _
	Title:=sTitle)
	'проверить: введено ли имя
	If Len (Trim (SrcShtName)) =  0  Then
	MsgBox "Имя с данными не введено - конец работы"
Exit Sub
 End If
'выбор листа, на который указал пользователь
	Sheets (SrcShtName).Select

	
	'получить диапазон (с данными)
SourceRng = InputBox(prompt:=  _
	"Введите диапазон с данными для диаграммы, " &  _
	"используя R1C1 формат:",  _
	Title:=sTitle)
      'проверка; введен ли диапазон
       If Len (Trim(SourceRng))  = 0  Then       
	MsgBox "Диапазон данных не введен - конец работы" 
    Exit Sub 
    End If 

 'получить имя листа для помещения в него диаграммы
          DestShtName = InputBox (prompt:="Введите имя листа " & _
          		"для диаграммы:",  _
	Title:=sTitle) 
    'проверка: не выбрана ли Отмена
            If Len (Trim(DestShtName)) =  0  Then
           MsgBox "Лист для диаграммы не введен " & _
          	"- конец- работы"
      Exit Sub 
    End If
	
    'выбор листа и создание диаграммы
   Sheets (DestShtName).Select	
 ActiveSheet.ChartObjects.Add( 96 ,   37 . 5 ,  234 ,  111 ).Select 

 'использование метода ChartWizard для создания диаграммы 
    With Sheets(SrcShtName)
    ActiveChart.ChartWizard Source:=Range(SourceRng),  _
                                     Gallery:=xlPie, _
	                              Format:= 7 , _
		                      PlotBy: =xIColumns,  _
	                              CategoryLabels:= 1 ,  _
	                              SeriesLabels:= 1 ,  _
	                              HasLegend:= 1 , _  
	                              Title:="Суммарный смыв"
    End With        
    End Sub



Текст ошибки в части кода 'использование метода ChartWizard для создания диаграммы:

Run-time error '1004':
Method 'Range' of object'_Global'failed

P.S. Я знаю, что чем короче вопрос, больше шансов на успех, поэтому извините за столь длинное сообщение.
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546189
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять перед Range забыла поставить точку, исправляюсь.

Код: plaintext
ActiveChart.ChartWizard Source:=.Range(SourceRng),  _
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546190
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lara607, а с этим xIColumns что делать???
функция не определена
Выложили бы уже файл
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546191
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое, что откликнулись!
Здесь ошибка, вместо буквы l в xlColumns стояла I

PlotBy: =xlColumns


Посылаю файл
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546194
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо
Код: plaintext
xlColumns 
, а не
Код: plaintext
xIColumns
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546197
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lara607, не знаю, что за ересь - Run-time error '1004'
одно, что - можно наверное обойтись без Select
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546198
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lara607, читали?
expression.ChartWizard(Source, Gallery, Format, PlotBy, CategoryLabels, SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)
expression Required. An expression that returns one of the objects in the Applies To list.

Source Optional Variant. The range that contains the source data for the new chart. If this argument is omitted, Microsoft Excel edits the active chart sheet or the selected chart on the active worksheet.

Gallery Optional XlChartType. The chart type.

XlChartType can be one of these XlChartType constants.
xlArea
xlBar
xlColumn
xlLine

xlPie

xlRadar

xlXYScatter

xlCombination

xl3DArea

xl3DBar

xl3DColumn

xl3DLine

xl3DPie

xl3DSurface

xlDoughnut

xlDefaultAutoFormat


Format Optional Variant. The option number for the built-in autoformats. Can be a number from 1 through 10, depending on the gallery type. If this argument is omitted, Microsoft Excel chooses a default value based on the gallery type and data source.

PlotBy Optional Variant. Specifies whether the data for each series is in rows or columns. Can be one of the following XlRowCol constants: xlRows or xlColumns.

CategoryLabels Optional Variant. An integer specifying the number of rows or columns within the source range that contain category labels. Legal values are from 0 (zero) through one less than the maximum number of the corresponding categories or series.

SeriesLabels Optional Variant. An integer specifying the number of rows or columns within the source range that contain series labels. Legal values are from 0 (zero) through one less than the maximum number of the corresponding categories or series.

HasLegend Optional Variant. True to include a legend.

Title Optional Variant. The chart title text.

CategoryTitle Optional Variant. The category axis title text.

ValueTitle Optional Variant. . The value axis title text

ExtraTitle Optional Variant. The series axis title for 3-D charts or the second value axis title for 2-D charts.


Там нет квадратных скобок, у Вас параметров не хватает
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546199
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя там пример есть
Example
This example reformats Chart1 as a line chart, adds a legend, and adds category and value axis titles.

Charts("Chart1").ChartWizard _
Gallery:=xlLine, _
HasLegend:=True, CategoryTitle:="Year", ValueTitle:="Sales"

Тоже не все параметры, тогда не знаю
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546205
Lara607
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эндрю,спасибо за информацию. Постараюсь разобраться. Потом напишу о результате.

С уважением, Лариса Чигринец
...
Рейтинг: 0 / 0
построение круговой диаграммы
    #37546248
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема тут:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 'создаем диаграмму и делаем ее активной
 ActiveSheet.ChartObjects.Add( 96 ,   37 . 5 ,  234 ,  111 ).Select 
 'делаем активными ячейки
 ActiveSheet.Cells.Select
 'пытаемся работать с активной диаграммой:
 ActiveChart.ChartWizard...
 'а нет активной диаграммы, вы же только деактивировали ее, сделав активными ячейки
и что интересно, о чем я уже говорил, этой строчки в изначальном коде нет, вы что-то правите, вносите новые ошибки, ни слова не говоря

ЗЫ: Эндрю, я предупреждал
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / построение круговой диаграммы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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