Tag: 图表

使用macros在Excel vba中绘制数据时select数据的第一列到最后一列

我正在编译一些工作中运行的testing数据,我希望从第一列到表单最后一列有一个macrosselect数据。 问题在于,input的每个文件的列数可能不同,所以我需要查找最后一列。 这是我目前使用的。 Columns("A:A").Select Range(Selection, Selection.End(xlToRight)).Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ActiveChart.SetSourceData Source:=Range( _ "'" & fileType & "'!$A$1:$H$" & CStr(LastRowColH)) fileType是文件的名称,它可以很好地发现它,但是当Excel自动放置在$ A $ 1:$ H $范围内时会出现问题。 我希望它从A列到最后一列有数据。 该行的最后一部分,即CStr(LastRowColH))是我能够find的最接近的东西,可以find某个东西的最后部分。 如果只有一个CStr(LastColRow1))代码来获取最后一列,而不是最后一行。 否则有没有办法可以设置$ A $ 1:$ H $部分等于活动select? 任何帮助,将不胜感激! 谢谢

为什么格式化辅助轴会导致错误?

我创build了一个从数据数组创build图表的函数。 有时候它可以正常工作,有时候不会,原因不明。 如果没有,则会出现以下错误: 运行时错误“-2147467259(80004005)” 我试图尽可能地减less代码,同时仍然“保存”这个问题。 缩减的代码如下。 它从下面的第三行错误。 如果在指定的位置使用DoEvents语句,那么它的错误就会less得多,但有时候也是如此。 我正在使用Excel 2007。 我的问题是: 这里有什么问题? 该怎么办,因为添加DoEvents不是一个完整的解决scheme。 另外,我读过DoEvents经常被认为是相当邪恶的。 Option Explicit Sub test() Dim a(1 To 3) As Double Dim b(1 To 3) As Double Dim c(1 To 3) As Double Dim d(1 To 3) As Double a(1) = 1.1 a(2) = 1.3 a(3) = 0.8 b(1) = 1.1 b(2) […]

Excel VBA高级图表操作

我在使用VBA的Excel中对图表的高级操作有一个非常特殊的问题。 我想尝试在这个截图的基础上解释它。 对于我的理解和经过几个小时的文学和networking研究,没有办法在绘制图表时产生可比的和恒定的结果,因为有几个属性是不能操作的,有些命令不能正确执行。 我使用VBA将两个图表的绘图区域的宽度设置为700(手动生成图表之后): ActiveChart.PlotArea.Width = 700 之后,一个宽度是698.12,一个是712.34(比较小区的右端)。 此外,根据y轴刻度的最大值(80与100),绘图区域的左边界是可变的。 这些问题的结果是情节不一致。 为什么这对我至关重要? 那么,想象一下,你有一个Excel计算工具,用于项目预测等。这是由几个部门,如贵公司的人使用,因此应始终看起来相同,并可比较。 这些预测的一部分是一个应该在图表中可视化的容量规划。 由于这些项目具有不同的里程碑,例如不同的项目阶段,这些图表应显示代表这些阶段的条形图。 使用辅助轴将不起作用,因为无法将其与主要主轴同步以使其看起来不错。 总是有一个偏移量。 所以计划是在这些图表中绘制graphics。 要做到这一点,以我的理解,我需要绘图区域和列等的确切位置,来计算这些条形和其他形状的相对位置。 我希望我的解释足以让你知道我要做什么。 所以我会回到我的问题: 为什么Excel在每种情况下都不同地解释我的命令(绘图区宽度)? 是否有可能修复/定义的阴谋面积肯定? 是否有更多的可操作的对象/属性比logging在msdn和其他来源,我发现迄今为止,我如何得到这些? 我期待着你的回复。 编辑: 正如RBarryYoung所问,我写了一些代码,以便重现问题。 当然,这次不同右边界的问题没有出现。 但是,至lessy轴的宽度和因此绘图区域的可变宽度(例如绘图区域的左边界的可变位置)的问题是可重现的。 如果你自己画一些线,你会看到,左边界,因此列本身是抵消。 Sub DrawChart() Dim wkb As Workbook Dim wks As Worksheet Dim chart1 As Chart Dim chart2 As Chart Dim table1 As ListObject Dim table2 As ListObject […]

我怎样才能给excel的所有图表分配一个随机的名字?

我有很多图表在Excel中看起来相似,但具有不同的数据范围,但他们也有相同的图表名称。 当我将这些图表链接到Powerpoint时,这成为一个问题! 有没有办法为我的工作簿中的所有图表分配一个随机名称?

在Excel图表中缩放轴

我在不同的时间logging了一些样本: 50 40 36 33 32 30 28 25 22 20 17 15 13 10 7 5 当我在Excel中创build带有标记的折线图时,x轴是基于这些值的,但是当然,从50到40的距离比从22到20的距离它们没有被归一化。 有没有一种方法可以在logging的位置绘制标记线,并且在x轴上正确缩放? (所以从50到40中间没有数据,但是行不到“0”,应该只是连接到40的值) Format Axis在这里似乎没有什么function) 编辑 – 见图

如何更改图表中的所有字体?

我正试图改变整个图表的字体。 使用Shapes集合logging的macros>形状对象> TextFrame2(包含指定形状的文本格式)> TextRange> Font。 With ActiveSheet.Shapes("Chart 1502").TextFrame2.TextRange.Font .NameComplexScript = "Arial" .NameFarEast = "Arial" .Name = "Arial" End With 我在文档中检查它,似乎是好方法,但是当我尝试运行此录制的macto时,它会抛出: 运行时错误:'-2147024809(80070057)': input的值超出范围 (我的翻译 – 我已本地化版)。 错误是在这一行(特别是与TextFrame2 ) With ActiveSheet.Shapes("Chart 1502").TextFrame2.TextRange.Font 因为 set x = ActiveSheet.Shapes("Chart 1502")' is OK 但 set x = ActiveSheet.Shapes("Chart 1502").TextFrame2 'throws Run-Time Error

如何阅读图表从Excel表使用Java?

我已经使用jxl库来读取Excel表格,它工作正常的string和数字,但现在我也想读取该Excel表格图表。 因为我不知道如何使用这个图书馆阅读图表。 谁能告诉我,我该怎么办?

如何设置我的GIF可见,当我运行用户表单? (VBA)

我的图表只更新并显示在我正在运行的用户窗体上,当我单击我的桌面上的temp.gif文件。 当我运行代码时,如何让它自动显示? 这是我的代码: Private Sub Image1_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet") 'ws.ChartObjects("Chart 2").Chart.Activate Set CurrentChart = ws.ChartObjects("Chart 2").Chart Fname = ThisWorkbook.Path & "\temp.gif" CurrentChart.Export Filename:=Fname, FilterName:="GIF" Image1.Picture = LoadPicture(Fname) End Sub 诚恳, Peyko。

防止Excel激活新对象(表格,图表,工作簿)

好的,我有一个处理大量数据并制作大量图表的excelmacros。 我inheritance了一个最近退休的人的代码,而代码function非常低效,所以我正在重写它。 我试图解决的一件事是他激活/select了一切。 我更喜欢使用引用,并从不select/激活任何东西。 但是我遇到了一个问题,那就是当我创build一个新的工作簿或者图表时,它会从原来的工作簿中偷取焦点。 这很烦人,因为我通常不会在我的主工作簿的引用中添加工作簿对象。 例如,当我使用这些行时,新的图表/工作簿将变为活动状态 Set wb = Workbooks.Add或Set wC = wb.Charts.Add 然后,我使用Workbooks(FileName).Activate重新激活原始工作簿 我觉得每次都要这样做是令人讨厌的,并且想知道是否有办法阻止新的对象变得活跃。 编辑:我只是意识到,其他行动导致图表窃取焦点,就像用这个命令移动图表wC.Move After:=wb.Worksheets(wb.Worksheets.Count)

VBA程序子错误; 试图设置条件循环

此程序旨在用于从另一个工作表上的数据透视表中复制数据(每个数据集的行数不同)。 每组粘贴的数据都用来创build自己的瀑布图,为此我已经在不同的图纸上制作了模板。 我有这个代码有几个问题。 1)出于某种原因,它不再运行(我重构了一个macros的代码),并给我错误“编译错误:子或函数没有定义” – 我试着做一个新的模块和一个新的macros,但没有avail 2)另外,我想根据数据集的大小更改图表的范围。 这是我目前硬编码的: Selection.Formula = "=SERIES(,Sheet5!R8C1:R17C1,Sheet5!R8C4:R17C4,1)" 所以,Sheet5!R8C1:R17C1需要成为SheetN!开始:结束 完整代码如下: Sub WF_New_Sheet() Dim copyFrom As Range Dim wS As Worksheet 'use as current worksheet Dim cht As Chart 'Paste and format data Set wS = Sheets("Pivot 1") copyFrom = wSRange("C82:D90") Set wS = Sheets.Add(After:=Worksheets.Count) wS.Range("A9").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False […]