我终于找到了满足我创建图表需求的代码(下面的代码)。但是我有两个问题:
1- 最糟糕的是,每次我运行代码时,它都会在我的工作簿上制作 2 张纸。一个包含空白图表框,一个包含图表本身。后者,由于代码被隐藏了,但无论如何,在运行代码 5 次后,我的工作簿上有 10 个新工作表,必须删除它们。
2-我无法使用我尝试过的任何调整代码来调整它的大小。在这里,我有
.ChartArea.Height
和 .ChartArea.Width
这给了我错误:形状被锁定并且无法调整大小。
真的有控制尺寸的实用方法吗?
Private Sub CommandButton4_Click()
Charts.Add
chartarray1 = Array(Val(UserForm1.TextBox6.Value), Val(UserForm1.TextBox7.Value))
chartarray2 = Array("methane", "carbon")
Dim mychart As Chart
Dim fname As String
Set mychart = Charts.Add
With mychart
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "emissions"
.SeriesCollection(1).XValues = chartarray2
.SeriesCollection(1).values = chartarray1
.ChartType = xlBarClustered
.ChartArea.Height = 107
.ChartArea.Width = 167
.ChartStyle = 6
End With
ActiveChart.Export "C:\Users\shsy\chart1.jpg"
f = activesheet.Name
Sheets(f).Select
ActiveWindow.SelectedSheets.Visible = False
fname = "C:\Users\shsy\chart1.jpg"
UserForm1.Image1.Picture = LoadPicture(fname)
End Sub
我强调我需要图表是交互式的(动态的)并且只在用户表单上制作,变量也来自表单上的文本框。 随着 chart.gif/jpg 被临时保存在系统上,我没有问题,但每次运行导致创建新工作表的代码真的很烦人。
提前感谢您的帮助。
我想编辑代码,这样它就不会创建额外的工作表。