На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Как постоить диаграмму в Excel
    Доброго времени суток.
    Сталкнулся с необходимостью обрабатывать данные, сохранять их в Excel и там же по ним строить диаграмму.
    Записывать данные получается, а с диаграммой просто беда:(
    Может кто поможет и пояснит как её постоить на примере столбца данных?
    Заранее спасибо
      Попробуйте почитать справку и пояснения мастера построения диаграмм (который, кстати, тоже имеет кнопку вызова справки).
        заходишь в Excel дальше - вид/панель инструментов/ ставиш галочку на Visual Basic
        дальше нажимаешь кнопочку "Записать макрос" - строишь график вручную - нажимаешь кнопочку "Остановить макрос" - нажимаешь кнопочку " редактор Visual Basic" и смотришь код который построит диаграмму по твоим данным
          макрос получился:

          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
            Цитата iamfortune @
            после того как вставил в проект, выдаёт ошибку:
            Compile error:
            Sub or Function not defined
            для Columns

            Правильно. Потому что не указано, какие именно Columns.
              Цитата 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, ему надо обьяснить :lol:
              тоесть
              ExpandedWrap disabled
                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

              вроде так,
                .Columns("A1:A10").Select 'данные уже там должны быть
                на эту строчку выдаёт 1004 ошибку
                В референсах ексель подключён

                не могли бы выложить простенький пример?
                  Цитата Бяка @
                  на эту строчку выдаёт 1004 ошибку

                  Конечно, ошибка синтаксиса.
                  Цитата iamfortune @
                  не могли бы выложить простенький пример?

                  А справку читать и смотреть примеры в ней уже немодно?
                    Цитата iamfortune @
                    .Columns("A1:A10").Select 'данные уже там должны быть
                    на эту строчку выдаёт 1004 ошибку
                    В референсах ексель подключён

                    ну уж если нато пошло то не Columns а Range тоесть
                    Range("A1:A10").Select
                    у Columns другой синтаксиса
                    Columns("A:A").Select или Columns(1).Select только эта строчка помоему вообще лишняя :jokingly:

                    Добавлено
                    Цитата iamfortune @
                    не могли бы выложить простенький пример?

                    на, тупо по макросу сделал

                    ExpandedWrap disabled
                      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

                    с тебя пирожок
                    Сообщение отредактировано: Бяка -
                      Итить-колотить:)
                      Заработало!

                      ох уж этот Excel..

                      Согласен на пиво:)

                      Добавлено
                      Всем спасибо
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0.1039 ]   [ 16 queries used ]   [ Generated: 24.07.26, 12:20 GMT ]