![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Заблокирован
Регистрация: 18.10.2008
Сообщений: 65
|
![]() ![]() Пытаюсь построить Диаграмму на VB! Записал рекордером построение на VBA, сохранил, ввёл объекты на VB и вот что получилось: Sub Main() Dim oExcel As Object Dim oBook As Object Dim Sheets As Object Set oExcel = CreateObject("Excel.Application") Set oBook = oExcel.Workbooks.Open("C:\Конструкт ор.xls") oBook.Charts.Add oExcel.Visible = True Stop oBook.ActiveChart.ChartType = xlPieExploded oBook.ActiveChart.SetSourceData Source:=Sheets("Конструктор").Range ( _ "AM16,BR16,CW16,EB16,FG16"), PlotBy:=xlRows oBook.ActiveChart.SeriesCollection(1).XVa lues = _ "={""Однотариф."",""Тариф 1"",""Тариф 2"",""Тариф 3"",""Тариф 4""}" oBook.ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Отношение тарифов" With oBook.ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "Отношение тарифов" End With oBook.ActiveChart.HasLegend = False End Sub !Синим отметил добавленное! Модуль останавливается там, где я добавил красный STOP До этого открывает книгу и добовляет поле для диаграммы, а потом пишет Type mismatch на строку oBook.ActiveChart.ChartType = xlPieExploded |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Попробуйте такой код (вдруг заработает):
Код:
А не проще ли использовать раннее связывание? Поставьте у проекта VB в меню Проект - Ссылки галочку напротив библиотеки Microsoft Excel Object Library, и объявляйте объекты Excel не как Object, а в соответствии с их типами: Dim Excel As New Excel.Application Dim WB As Excel.Workbook, Chart As Excel.Chart
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 31.10.2008 в 03:22. |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 18.10.2008
Сообщений: 65
|
![]()
У меня нет такой библиотеки в ссылках!
Можно её скачать где-то? или установить как-то? У меня VB 6.0 |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 18.10.2008
Сообщений: 65
|
![]()
Предлагаемый код тоже не работает!
|
![]() |
![]() |
#5 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
- в зависимости от версии установленного пакета Office. Если Excel установлен на компьютере, библиотека должна быть в списке. Если её всё таки в списке нет, а Excel установлен, то тогда нажми Пуск - Выполнить, и введи команду Excel /regserver Если и после этого её не будет в списке, в окне Доступные ссылки (в VB) жмём Обзор и выбираем файл C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE ( тут тоже вместо OFFICE11 может быть OFFICE12 и т.п.) Короче, ставим ссылку на файл EXCEL.EXE Цитата:
|
||
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 18.10.2008
Сообщений: 65
|
![]()
Так работает - разобрался:
Sub Main() Dim oExcel As Object, oBook As Object, Sheets As Object Set oExcel = CreateObject("Excel.Application") Set oBook = oExcel.Workbooks.Open("C:\BQuark.0. 3\Конструктор.xls") Set Sheets = oBook.Sheets("Конструктор") Set Chart = oBook.Charts.Add Chart.chartType = 69 Chart.SetSourceData Source:=Sheets.Range("AM16:AM20"), PlotBy:=5 Chart.SeriesCollection(1).XValues = "={""Однотариф."",""Тариф 1"",""Тариф 2"",""Тариф 3"",""Тариф 4""}" Chart.Location Where:=1, Name:="Отношение тарифов" Chart.HasTitle = True Chart.ChartTitle.Characters.Text = "Отношение тарифов" Chart.HasLegend = False Chart.SeriesCollection(1).ApplyData Labels AutoText:=True, LegendKey:= _ False, HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:= _ True, ShowValue:=True, ShowPercentage:=True, ShowBubbleSize:=False oExcel.Visible = True End Sub |
![]() |
![]() |
#7 |
Заблокирован
Регистрация: 18.10.2008
Сообщений: 65
|
![]()
Спасибо большое!
А код типа диаграммы xlLine в цифрах как записать? Может где-то можно скачать данные коды? |
![]() |
![]() |
#8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Открываете Object Browser (в VB, а если к нему так и не удалось подключить библиотеку Excel, то в редакторе VBA Excel) - открывается он нажатием F2 - и в строке поиска вводите xlLine
Нажимаете на одном из результатов поиска, и внизу панели Object Browser видите примерно следующее: Const xlLine = 4 Member of Excel.XlChartType А если там же в поиске ввести XlChartType, то в правом столбце увидите кучу констант, определяющих тип диаграммы И лучше использовать конструкцию Код:
И используйте для вставки кода в сообщение теги [CОDE] и [/CОDE] (нажмите # над окном сообщений)
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 01.11.2008 в 15:16. |
![]() |
![]() |
#9 |
Заблокирован
Регистрация: 18.10.2008
Сообщений: 65
|
![]()
конечно через With! Я просто крутил - вертел до этого! Спасибо!
|
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с диаграммой | maxic | Microsoft Office Excel | 0 | 02.10.2008 17:30 |
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! | VisTBacK | Помощь студентам | 6 | 19.09.2008 13:44 |
Помогите с диаграммой в Excel | Aaz38 | Microsoft Office Excel | 1 | 24.12.2007 11:40 |