我为Excel 2010编写了一堆VBA,用于从Access数据库中检索数据,将数据透视表放入新工作簿,并根据具有两个数据系列的数据透视表创建数据透视表。一个系列是一个栏,第二个系列是我将.MarkerStyle设置为xlMarkerStyleNone的一行。宏还会保存新工作簿。
当我打开保存的工作簿时,我发现该行现在有标记。
在试图找出这里发生了什么时,我已经按下[CTRL] - [BREAK]来停止宏格式化图表格式化之后和保存之前,所以我可以看到图表格式中有什么。我可以看到,当我右键单击系列并查看属性时,标记样式已设置为无,并且通过查看相关系列上的.MarkerStyle仍设置为xlMarkerStyleNone来验证。
当我使用[CTRL] - [S]手动保存新工作簿时,它保存得很好并且在没有行标记的情况下加载。但是当我用save-as([ALT] - [F],[A])保存文件时,我看到文件保存后会出现标记。
所以我认为这不是代码,而是Workbook.SaveAs方法。但为了以防万一,我会展示相关代码。
我在保存为.xlsb文件时使用xlExcel12和50作为FileFormat,在保存为常规.xlsx文件时使用xlOpenXMLWorkbook和51。这也没有任何区别。
更新:我还尝试了Workbook.Save方法,它只保存我创建的新工作簿Book1.xlsx,它有同样的问题。
' Chart Formatting
reportSheet.Shapes(10).Chart.SeriesCollection(2).ChartType = xlLine
reportSheet.Shapes(10).Chart.SeriesCollection(2).Format.Line.Visible = msoTrue
reportSheet.Shapes(10).Chart.SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(186, 7, 67)
reportSheet.Shapes(10).Chart.SeriesCollection(2).Format.Line.Transparency = 0
reportSheet.Shapes(10).Chart.SeriesCollection(2).Format.Line.Weight = 1.5
reportSheet.Shapes(10).Chart.SeriesCollection(2).MarkerStyle = xlMarkerStyleNone
' Saving the chart
reportbook.SaveAs fileName:=saveFileSpec, FileFormat:=xlOpenXMLWorkbook
我期望在使用Workbook.SaveAs方法时保存工作簿而不会在保存过程中进行任何更改。
好吧,这很愚蠢,但我已经通过鼓滚动格式化并且保存了两次。现在这样做,但我会在某个时候尝试Jon Peltier的建议并报告。