Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / построение круговой диаграммы / 25 сообщений из 39, страница 1 из 2
25.11.2011, 19:28
    #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
25.11.2011, 22:57
    #37545174
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
отсутствует знак подчеркивания в строках 26-27
...
Рейтинг: 0 / 0
26.11.2011, 06:33
    #37545356
Lara607
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
Спасибо за ответ! Набираю знак подчёркивания, всё равно не работает, показывает в этой части ту же ошибку

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

Мне вчера понадобилось выяснить, где хранится история icq (сам кипом пользуюсь), и скрестив пальцы, я пошел по первой ссылке...
...
Рейтинг: 0 / 0
26.11.2011, 13:35
    #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
26.11.2011, 13:45
    #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
26.11.2011, 14:29
    #37545539
Lara607
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
qwerty112,

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

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

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

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

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

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

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

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

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

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

неправильно другое - что вы вообще не вникаете в то, что пишете (или переписываете что ли из чужой тетрадки). Посмотрите внимательно на мое сообщение выше, касающееся именно этой строки.
...
Рейтинг: 0 / 0
27.11.2011, 09:13
    #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
27.11.2011, 09:23
    #37546189
Lara607
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
Опять перед Range забыла поставить точку, исправляюсь.

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

PlotBy: =xlColumns


Посылаю файл
...
Рейтинг: 0 / 0
27.11.2011, 09:43
    #37546194
Lara607
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
надо
Код: plaintext
xlColumns 
, а не
Код: plaintext
xIColumns
...
Рейтинг: 0 / 0
27.11.2011, 09:52
    #37546197
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
Lara607, не знаю, что за ересь - Run-time error '1004'
одно, что - можно наверное обойтись без Select
...
Рейтинг: 0 / 0
27.11.2011, 09:56
    #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
27.11.2011, 09:59
    #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
27.11.2011, 10:18
    #37546205
Lara607
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение круговой диаграммы
Эндрю,спасибо за информацию. Постараюсь разобраться. Потом напишу о результате.

С уважением, Лариса Чигринец
...
Рейтинг: 0 / 0
27.11.2011, 11:35
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / построение круговой диаграммы / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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