Grafik çağrılar.SetSourceData hata 1004 ver
Benim şirkette Excel 2003'te oluşturulan bir uygulama ile ilgili bir sorun var. Uygulama bir kaynaktan veri alır ve bir Grafik bir VBA yordamı SetSourceData
kullanarak bir Dizi ilgili verileri yazılı olduğu hücreler içeren geçirerek günceller.
Uygulama bu hata veriyor Office 2010 Office iyi uygulama çalıştırıldığında, 2003, ama çalışır:
Çalışma zamanı hatası '1004': Yöntemi 'SetSourceData' nesne'_Chart' başarısız oldu.
Ofiste basit bir Excel dosyası For
bir döngü 2010 oluşturdum ve hata er ya da geç gelecektir Grafiğe sütun Aralığı geçti sayısına bağlı olarak. O kadar çabuk gelecek sütun Aralığı geçti. Bu Grafikte seri numarası(daha fazla sütun daha dizi) ile ilgili olmalı sanırım.
Bu mekanizma, bir çeşit Grafik/tampon veya Dizi ofiste uygulanan Office 2003 yılında var olmayan 2010 nesnedir? For
aynı döngü hiç Office 2003 çalıştırıldığında bir sorun gösterir ve bu sorunu çözmek için nasıl emin değilim.
Ben, şimdiye kadar sadece mümkün silmek için tüm Seriyi kontrol Hata ile bir Goto talimat silmek için tüm serinin SeriesCollection kullanarak bir For Each
döngü için seçin tüm eşyalar SeriesCollection Grafik. Ben bunu ve tekrar Aralığı geçtiğimde uygulamanın yürütülmesine devam ederse tüm verileri Grafik Nesnesi düzgün boyanır.
Örnek hata yeniden oluşturmak için.Aşağıdaki kod yeni bir Excel 2010 çalışma kitabı VBA modülü koymak için. setDataChart
uygulama hata iletisi görüntülenir kadar devam edecek Alt çalıştırın.
Sub setDataChart()
Call createAColValues
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=Range("A1:FA6"), PlotBy:=xlColumns
ActiveSheet.ChartObjects(1).Activate
With ActiveChart.Parent
.Height = 325
.Width = 900
.Top = 120
.Left = 10
End With
Call updateValues
Call sendData
End Sub
Sub sendData()
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects(1)
'On Error GoTo delSeries:
For i = 0 To 1000
cht.Chart.SetSourceData Source:=ActiveSheet.Range("A1:FA6"), PlotBy:=xlColumns
Next i
End Sub
Sub createAColValues()
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("A2").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1:A2").Select
Selection.AutoFill Destination:=Range("A1:A6"), Type:=xlFillDefault
Range("A1:A6").Select
End Sub
Sub updateValues()
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RANDBETWEEN(0,10)"
Range("B1").Select
Selection.AutoFill Destination:=Range("B1:B6"), Type:=xlFillDefault
Range("B1:B6").Select
Selection.AutoFill Destination:=Range("B1:FA6"), Type:=xlFillDefault
Range("B1:FA6").Select
End Sub
CEVAP
Bu hata oluşur neden Adres yok. Bu geçici bir çözüm.
SetSourceData
şu anda grafikte mevcut tüm seriyi sil çağırmadan önce, kod beklendiği gibi çalışır.
For j = cht.Chart.SeriesCollection.Count To 1 Step -1
cht.Chart.SeriesCollection(j).Delete
Next j
Hata en başta oluşur neden emin değilim, ama bu onu yok eder.
Belgesiz NSURLErrorDomain hata kodları...
Yazdırma <div id=hareketli grafik&g...
PHP Ölümcül hata: tanımlanmamış işlev ...
UİİmagePickerController hata: iOS 7'de...
Sınıf Joda Zaman kırık hata Scala kull...