我有一个MS Acces Db。 我有一个命令按钮可将查询导出(TransferSpreadsheet acExport)到Excel并创建图表(设置ch = ws.Shapes.AddChart.Chart)
这是我的代码,可以正常工作:
class Model(QAbstractTableModel):
def __init__(self, parent=None, *args):
QAbstractTableModel.__init__(self, parent, *args)
self.items = ['Item_A_001','Item_A_002','Item_B_001','Item_B_002']
def rowCount(self, parent=QModelIndex()):
return len(self.items)
def columnCount(self, parent=QModelIndex()):
return 1
def data(self, index, role=Qt.DisplayRole):
row = index.row()
if 0 <= row < self.rowCount() and role == Qt.DisplayRole:
return self.items[row]
class Proxy(QSortFilterProxyModel):
def filterAcceptsRow(self, row, parent):
return '_B_' in self.sourceModel().data(self.sourceModel().index(row, 0))
我需要使用vba设置图表的轴的最大值和最小值。我需要参考工作表中已经存在的图表。
每当我添加到代码中时:
With ch
.ChartType = xlColumnClustered
.SeriesCollection(2).AxisGroup = 2
.SeriesCollection(2).ChartType = xlLineMarkers
.ChartGroups(1).GapWidth = 69
.Axes(xlValue).MajorGridlines.Delete
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.SetElement (msoElementLegendBottom)
End with
VBA显示错误1004“应用程序定义或对象” 我很困惑为什么我的代码不运行那些指令
如果有人可以指导我,我真的很感激,
祝一切顺利
答案 0 :(得分:0)
您的问题是.MinimumScale
和.MaximumScale
不是Chart
对象的属性,而是Axis
对象的属性。
请尝试:
.Axes(xlCategory, xlPrimary).MaximumScale = Sheet1.Range("Axis_max").Value
.Axes(xlCategory, xlPrimary).MinimumScale = Sheet1.Range("Axis_min").Value
答案 1 :(得分:0)
最后,我找到了设置最小和最大垂直图表轴的代码。
With ch
.ChartType = xlColumnClustered
.SeriesCollection(2).AxisGroup = 2
.SeriesCollection(2).ChartType = xlLineMarkers
.ChartGroups(1).GapWidth = 69
myMax = DMax("Total_Sal", "qry_task")
myMin = DMin("Total_Sal", "qry_task")
With .Axes(xlvalue, xlPrimary)
.MinimumScale = myMin
.MaximumScale = myMax
End With
myMax = DMax("Task_Val", "qry_task")
myMin = DMin("Task_Val", "qry_task")
With .Axes(xlvalue, xlSecondary)
.MinimumScale = myMin
.MaximumScale = myMax
End With
结尾
我真的很感谢ja72的初步帮助
要完成我的代码,我在Andy Pope
的帮助下