Excel 编辑代码时出现问题(调用错误的工作表)-错误(运行时错误';1004';)无效参数
此代码是从中找到的 我试图通过将表放在一个表中,将图形放在另一个表中来编辑它 原件:Excel 编辑代码时出现问题(调用错误的工作表)-错误(运行时错误';1004';)无效参数,excel,vba,Excel,Vba,此代码是从中找到的 我试图通过将表放在一个表中,将图形放在另一个表中来编辑它 原件: Sub PieMarkers() Dim chtMarker As Chart Dim chtMain As Chart Dim intPoint As Integer Dim rngRow As Range Dim lngPointIndex As Long Application.ScreenUpdating = False Set chtMarker = ActiveSheet.ChartObject
Sub PieMarkers()
Dim chtMarker As Chart
Dim chtMain As Chart
Dim intPoint As Integer
Dim rngRow As Range
Dim lngPointIndex As Long
Application.ScreenUpdating = False
Set chtMarker = ActiveSheet.ChartObjects(“chtMarker”).Chart
Set chtMain = ActiveSheet.ChartObjects(“chtMain”).Chart
Set rngRow = Range(ThisWorkbook.Names(“PieChartValues”).RefersTo)
For Each rngRow In Range(“PieChartValues”).Rows
chtMarker.SeriesCollection(1).Values = rngRow
chtMarker.Parent.CopyPicture xlScreen, xlPicture
lngPointIndex = lngPointIndex + 1
chtMain.SeriesCollection(1).Points(lngPointIndex).Paste
Next
lngPointIndex = 0
Application.ScreenUpdating = True
End Sub
我的编辑是添加一个
Dim wk As Worksheet
接
Set wk = Worksheets("Sheet1")
图表的位置(在表1中)
接
Set chtMain = wk.ChartObjects("chtMain").Chart
这行代码就是问题所在
chtMarker.SeriesCollection(1).Values = rngRow
感谢所有帮助过你的人 我附上了一个解决方案,该方案是在所有人的帮助下建立的。干杯
Sub PieMarkers()
Dim chtMarker As Chart
Dim chtMain As Chart
Dim intPoint As Integer
Dim rngRow As Range
Dim lngPointIndex As Long
Dim wk As Worksheet
Application.ScreenUpdating = False
Set wk = Sheets("Sheet1")
Set chtMarker = ActiveSheet.ChartObjects("chtMarker").Chart
Set chtMain = wk.ChartObjects("chtMain").Chart
Set chtMain = wk.ChartObjects("chtMain").Chart
Set rngRow = Range(ThisWorkbook.Names("PieChartValues").RefersTo)
For Each rngRow In Range("PieChartValues").Rows
chtMarker.SeriesCollection(1).Values = rngRow
chtMarker.Parent.CopyPicture xlScreen, xlPicture
lngPointIndex = lngPointIndex + 1
chtMain.SeriesCollection(1).Points(lngPointIndex).Paste
Next
lngPointIndex = 0
Application.ScreenUpdating = True
End Sub
请注意,VBA中不允许使用
“
的花哨引号。您必须在代码中将它们更改为直接的“
。替换它们。@TimStack它已被编辑。这是我的一个错误。这个Set rngRow=Range(ThisWorkbook.Names(“PieChartValues”).referesto)
似乎也没有必要,因为您以后将rngRow
用作每个循环的变量。同样,图表的工作表
无法通过工作表
对象访问,但是应该通过工作表而不是=>设置wk=Sheets(“Sheet1”)
@StavrosJon我按照您的建议做了,发现错误仍然存在,问题仍然相同请注意,这一行仍然有两次设置chtMain=wk.ChartObjects(“chtMain”).Chart
删除其中一个。还可以删除不需要的Set rngRow=Range(thishworkbook.Names(“PieChartValues”).referesto)
,因为您已经在中为每个
循环设置了rngRow
。