Ville låta mitt program skapa ett stapeldiagram. Jag hittade på Tips & Tricks ett Har att göra med Chart.Add, att du lägger till eller låter bli att lägga till diagram. Skulle rekommendera dig att förstå dig på koden som makrot har gjort, för att istället kunna debugga grejen ordentligt. Det är svårt att säga vad som ska ändras om man inte sitter med programmet. Hittade denhär:VB-Excel-problem
kodexempel för att exportera till Excel. Därefter spelade jag in macro som låter
excel skapa diagram, sedan kopierade jag koden. Allt fungerar, en gång.
Men när jag startar proceduren en andra gång kommer felmeddelande:
"SetExcel Error: 1004-Method 'Chart' of object '_Global' failed"
Jag raderar och återskapar excelfilen "statistik.xls" mellan varje körning
av proceduren setexcel.
__________________________________________________________
Private xlApp As Excel.Application ' Excel Application Object
Private xlBook As Excel.Workbook ' Excel Workbook Object
__________________________________________________________
Private Sub setexcel()
Dim xlFileName As String
Dim xlWorksheet As String
'från Tips & Tricks
On Error GoTo SetExcel_Err
xlFileName = App.Path & "\statistik.xls"
xlWorksheet = "Blad1"
' Create the Excel App Object
Set xlApp = CreateObject("Excel.Application")
' Create the Excel Workbook Object.
Set xlBook = xlApp.Workbooks.Open(xlFileName)
' Set the value of the Cell
----------------------------------------
xlBook.Worksheets(xlWorksheet).Cells(1, 1).Value = "a"
xlBook.Worksheets(xlWorksheet).Cells(2, 1).Value = "b"
xlBook.Worksheets(xlWorksheet).Cells(3, 1).Value = "c"
xlBook.Worksheets(xlWorksheet).Cells(4, 1).Value = "d"
xlBook.Worksheets(xlWorksheet).Cells(1, 2).Value = "10"
xlBook.Worksheets(xlWorksheet).Cells(2, 2).Value = "7"
xlBook.Worksheets(xlWorksheet).Cells(3, 2).Value = "4"
xlBook.Worksheets(xlWorksheet).Cells(4, 2).Value = "9" 'Exempel-värden
xlBook.Worksheets(xlWorksheet).Cells(1, 3).Value = "1"
xlBook.Worksheets(xlWorksheet).Cells(2, 3).Value = "4"
xlBook.Worksheets(xlWorksheet).Cells(3, 3).Value = "6"
xlBook.Worksheets(xlWorksheet).Cells(4, 3).Value = "2"
xlBook.Worksheets(xlWorksheet).Cells(1, 4).Value = "8"
xlBook.Worksheets(xlWorksheet).Cells(2, 4).Value = "4"
xlBook.Worksheets(xlWorksheet).Cells(3, 4).Value = "7"
xlBook.Worksheets(xlWorksheet).Cells(4, 4).Value = "6"
---------------------------------------------
xlBook.Worksheets(xlWorksheet).Range("A1:D4").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Blad1").Range("A1:D4"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveChart.SeriesCollection(3).Select
With Selection.Interior
.ColorIndex = 2
.Pattern = xlSolid 'Kopierat från macro-inspelning
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
-----------------------------------------------
xlBook.Save
xlBook.Close savechanges:=False
xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing 'från Tips & Tricks
Exit Sub
SetExcel_Err:
MsgBox "SetExcel Error: " & Err.Number & "-" & Err.Description
End Sub
_____________________________________________________________________________Sv: VB-Excel-problem
Sv:VB-Excel-problem
http://www.xtremevbtalk.com/showthread.php?t=133364
Så nu har jag modifierat koden som makrot skapade:
xlBook.Worksheets(xlWorksheet).Range("A1:D4").Select
Set oChart = xlBook.Charts.Add
oChart.HasLegend = Fals
oChart.ChartType = xlColumnClustere
oChart.SetSourceData Source:=xlBook.Worksheets(xlWorksheet).Range("A1:D4"), PlotBy:=xlColumn
oChart.Location Where:=xlLocationAsNewSheet
oChart.SeriesCollection(3).Interior.ColorIndex = 2
oChart.SeriesCollection(2).Interior.ColorIndex = 3
Och lagt till: "Dim oChart as object" i början.
Nu fungerar det