Board logo

標題: 高手求救 請問如何用vb取得趨勢線的公式(F8逐步執行是可以,但按F5就沒反應) [打印本頁]

作者: jysun1    時間: 2018-7-7 21:22     標題: 高手求救 請問如何用vb取得趨勢線的公式(F8逐步執行是可以,但按F5就沒反應)

[attach]28932[/attach][attach]28933[/attach]
作者: Scott090    時間: 2018-7-8 07:01

回復 1# jysun1

試試看是否符合需求:

'畫數據圖取趨勢線計算式
'======================
Sub test()
      Dim sh As Worksheet
      Set sh = ActiveSheet
      
    '刪除己有之圖案、圖表
    '=============================
      For Each ChartObject In sh.Shapes
            ChartObject.Delete
      Next
      
      With sh.ChartObjects.Add(100, 100, 200, 200).Chart
            With .SeriesCollection.NewSeries
                  .Values = sh.Range("C4:C7").Value
                  .ChartType = xlLineMarkers
           
                  With .Trendlines.Add
                        .Type = xlPolynomial
                        .Order = 2
                        .DisplayEquation = True
                        sh.Cells(1, 1) = .DataLabel.Text
                  End With
             End With
            
      End With
      
End Sub
作者: Scott090    時間: 2018-7-8 09:41

回復 1# jysun1

'增加時間控制
    Sub test()
      Dim sh As Worksheet
       Dim tt!
           .
           .
                .DisplayEquation = True
               '停頓一點時間
               '==============
               tt = Timer:  Do: DoEvents: Loop While Timer - tt < 0.05
               '==================================
               sh.Cells(1, 1) = .DataLabel.Text
        .
        .
    End Sub
作者: jysun1    時間: 2018-7-8 22:24

回復 3# Scott090
感謝您的回覆F8逐步執行是可以,但按F5就沒cell(1,1)還是帶不出公式
作者: Scott090    時間: 2018-7-9 04:34

回復 4# jysun1


    [attach]28938[/attach]
[attach]28939[/attach]
作者: Scott090    時間: 2018-7-9 04:55

回復 4# jysun1


    上面是我這邊 F5 執行的結果。
再不行,請把下面的 0.05 改為 2 試試看

  '停頓一點時間
  '==============
  tt = Timer:  Do: DoEvents: Loop While Timer - tt < 0.05
作者: jysun1    時間: 2018-7-9 22:50

回復 6# Scott090
太太感謝了,試到0.5就跑的出來了:lol
作者: jysun1    時間: 2018-7-9 22:54

回復 7# jysun1
不好意思,請問一下 為什麼用 Application.Wait Now + TimeValue("00:00:05") 不行呢?也是停頓一點時間!!
作者: Scott090    時間: 2018-7-10 06:00

回復 8# jysun1


    Application.wait  好像是停著等待、除了計時外,甚麼事都沒做。不甚理解。
    Do: DoEvents ; ............Loop,是有釋出控制權的循環。
   
    以下的碼比較不受程式執行的環境的影響:
    Do: sh.Cells(1, 1) = .DataLabel.Text: DoEvents: Loop Until sh.Cells(1, 1) <> ""

請試試看
作者: jysun1    時間: 2018-7-10 21:53

回復 9# Scott090
謝謝 :)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)