Tag: 图表

Excel:可以通过哪种方式创buildChartGroups?

我有一个Chart包含两个ChartGroup 。 我从来没有故意这样做过,所以我猜不出是什么原因造成的。 任何人都可以提供所有选项(无论是VBA或其他)? 如果我知道可能采取的行动是什么,我可以意识到并控制/避免它们。 PS:这个缺点是我有很多使用PlotOrder识别Series的代码。 如果有多个ChartGroup ,则PlotOrder不是Chart Series的唯一标识符(它在ChartGroup是唯一的)。 从长远来看,无论如何,我将不得不调整我的代码。 但是目前来说,我可以尽可能地将图表调整为拥有一个ChartGroup 。 有没有简单的方法来重新分配一个Series的ChartGroup ? (这将使一个单一的职位有两个问题…) 这个问题源于 Excel:图表中两个系列的重复PlotOrder 编辑 :我在这里列出一些有趣的发现(围绕这个主题,但不回答具体问题)。 我在官方网站find了这个 ChartGroups Collection :“ 指定图表中所有ChartGroup对象的集合,每个ChartGroup对象表示一个或多个以相同格式绘制在一个图表中的系列。 ”即使我没有明确指出它,似乎每个XlChartType (一个Series的.ChartType的Enumerationtypes)显然会和一个给定的格式相关联,例如带有scatter的xlXYScatter 。 ChartGroup对象 :“ 表示一个或多个以相同格式在图表中绘制的系列。 ” ChartGroup所有Series应具有相同的“ 格式 ”。 但是相反的情况是不正确的:在不同的ChartGroup可能有相同格式的ChartGroup 。 请参阅下面的第3点和示例。 从ChartGroup对象 :“ 因为如果用于该组的图表格式发生更改,特定图表组的索引号可能会更改,则使用其中一个指定的图表组快捷方式可能会更容易返回特定的图表组。方法返回图表中饼图组的集合,LineGroups方法返回折线图组的集合,依此类推。 “例如, LineGroups Method 。 这允许点2: PieGroups将返回ChartGroup的集合。 可能有不止一个这样的ChartGroup ,并且所有的系列将具有Pie格式。 返回特定图表组的可用命名图表组快捷方式并不全面。 例如,没有XYScatterGroups方法。 作为第二点的例子,我有一个XYScatter格式的图表。 5个可用的XlChartType (根据XlChartType Enumeration的数值和描述)是 xlXYScatter […]

使用图表系列上的滚动条更改select个案

第一次在这里发布。 我有一个简单的折线图,其中有一系列来自表格的值。 本系列可以根据导入到我的电子表格中的数据集而变化。 我需要一个dynamic图表来绘制一个滚动位置,这是在图表系列中select的数据。 我有三个单独的工作很好,但是我想把它们合并到一个滚动条,我可以点击上下调整图表的范围从完整的值,一半的价值观,四分之一的价值观范围。 Sub HalfChartDataRange() Dim Rng As Range Set Rng = Sheets("Raw Data").Range("Stats[RollPos]") ActiveChart.SetSourceData Source:=Rng.Resize(Rng.Rows.Count / 2) End Sub Sub QuarterChartDataRange() Dim Rng As Range Set Rng = Sheets("Raw Data").Range("Stats[RollPos]") ActiveChart.SetSourceData Source:=Rng.Resize(Rng.Rows.Count / 4) End Sub Sub FullChartDataRange() Dim Rng As Range Set Rng = Sheets("Raw Data").Range("Stats[RollPos]") ActiveChart.SetSourceData Source:=Rng.Resize(Rng.Rows.Count / 1) End […]

制作时间轴/将标签文本链接到MsgBox

我正在Excel中创build一个时间表。 对于每个date,我可能会发生一个或多个事件。 在数据点上方显示每个事件的全部文本将被挤满。 每个数据点上面都有简短的描述。 我想单击标签文本或数据点,并出现一个消息框,其中包含与该事件相关的信息。 我已经有一个时间线模板,我已经设置了值。 我不想在每个事件后手动创build透明命令button。 有没有办法让VBA自动在每个数据点或数据标签背后边框或创build一个形状,并让它成为一个显示消息框的button? 更好的是,有没有比我一直在想这个过程更简单的方法呢? 非常感谢! 贾克森

Excel – 从一个图表系列复制到另一个图表系列

我希望能够将所有格式只从一个图表系列复制到另一个。 一种方式是通过VBA,遍历源系列中的所有格式属性并相应地设置目标系列。 还有其他的select吗? (复制和粘贴特殊格式将复制所有图表格式,所以我想这是没有用的)。 PS:使用VBA有几个缺点: 编码这是非常麻烦的。 它可能不能从一个Excel版本转移到另一个版本(无论如何这都适用于许多其他代码)。 某些属性或其组合不能用VBA进行设置。 我实际上已经编码了一些东西,但由于它只复制部分格式而受到限制,而且受到第3项的约束。

如何更改embedded在Word文档中的图表中的单元格值使用C#

我有一个Word文档,其中包含一些文本和从Excel中粘贴的两个图表。 我正在使用它作为模板。 我想在C#中打开Word文档,更新图表数据值并打印文档。 除了能够访问图表数据,我可以做所有的事情。 我正在使用Microsoft.Office.Interop.Word和Microsoft.Office.Interop.Excel(都是V14)。 这是我的代码: Word.Application wordApp = new Word.Application(); Word.Document wordDoc = wordApp.Documents.Open("K.docx"); Word.InlineShape shape = wordDoc.InlineShapes[1]; Word.Chart chart = shape.Chart; Excel.Workbook wb = chart.ChartData.Workbook; Excel.Worksheet ws = wb.Worksheets[0]; ws.Cells["E4"] = 90; wordDoc.PrintOut(); wordDoc.Close(); wordApp.Quit(); 第五个命令产生这个错误: 未指定错误(从HRESULTexception:0x80004005(E_FAIL))System.Collections.ListDictionaryInternal 更新:我解决了第五个命令中的错误,如下所示: Word.Application wordApp = new Word.Application(); Word.Document wordDoc = wordApp.Documents.Open("K.docx"); wordApp.ActiveDocument.InlineShapes[1].Chart.ChartData.Activate(); Word.InlineShape shape = wordDoc.InlineShapes[1]; Word.Chart […]

如何以编程方式响应各种Excel图表变化?

Excel具有VBA事件处理程序,用于在更改图表大小( Resize )或其中一个系列( SeriesChange )或其使用的数据( Calculate ),但似乎不适用于任何其他types的更改,例如: 轴设置 标签文本 传奇定位 embedded到工作表中的图表更改不会触发工作表的“ Change事件。 有什么办法来捕捉这些事件?

EXCEL 2010根据可能移动的命名范围构build图表

我正在努力寻找一种我认为简单的解决scheme。 在一个单独的应用程序中,我复制Excel工作簿,运行一堆数据库查询并将结果转储到新复制的工作簿中,为每个结果定义一个名称(名为range)。 在Excel的“模板”(它不是一个真正的模板,只是一个工作簿被复制),在另一个工作表上,有一些引用命名范围的图表。 当我最初构build“模板”时,我只是插入一个图表,并将“命名范围”作为“select数据”选项的数据源input。 图表看起来很好… 问题是,将数据转储到Excel中的应用程序并不总是将指定的范围放在同一位置,并且图表似乎在寻找特定范围的引用的单元格(例如= CategoryData!$ A $ 23:$ B $ 29而不是简单的= nrCategoryTotals这是我最初input的命名范围)。 所以问题是…是否有反正我可以让图表总是指向命名的范围,即使命名范围创build在以下条件不同的位置:1.没有用户交互(我意识到手动移动一个命名范围没有这个问题,因为Excel处理更新)2.命名范围的位置和大小将有所不同,只有它出现的表单是一致的 我希望这是有道理的? 人。

如何在Excel中创build时间轴图表?

我如何创build一个时间线上的聊天,在一张图中显示一天中人们的活动? 在x轴上,我打算放置时间。 而Y轴将是不同的人。 首先,我想到了一个简单的堆积条形图。 但是, 问题是Excel将所有相同的活动结合到一个项目,而不是在时间线上可视化…我也不能手动执行,因为我有几个1000条目可视化… 我发现这个post在Stackoverflow,但那里只有一个活动每个条目,而不是多个时间相同… 如果我可以使用Excel(因为我的数据集在那里)将是非常好的。 但是,如果有更好的方法(即工具),我也欣赏新的build议。 这就是我想象的时间表:

将Excel ChartTitle添加到Excel可在VBA中使用,但不能从VBScript中使用

我试图写一个VBScript文件(xxx.vbs),可以打开.CSV文件,格式化和图表数据。 一切工作正常,除了一件事 – ActiveChart.ChartTitle的设置。 当我在VBA中创build它时,它工作的很好,但是当我从VBScript文件中完成时,它似乎忽略了它。 这里是我的xxx.vbs文件的要领的消毒版本: ' Using Excel 2013 Const xlBarClustered = 57, xlLocationAsNewSheet = 1 ' Assume for this exercise Excel is already open and on the correct sheet Set oExcel = GetObject(, "Excel.Application") Set SheetData = oExcel.ActiveSheet ' Assume Labels in A2:A21, Data in B2:B21 and Title in B1 oExcel.Range("A2:B21").Select SheetData.Shapes.AddChart2(216, xlBarClustered).Select […]

使用VBA命名范围并创build具有这些范围的图表

我是VBA新手。 我试图创build超过500 xlClusteredColumn图表使用两列信息,我想加快工作。 第一列包含我想用于命名范围的名称(即: Line1 , Line2等),第二列包含数据范围的间接引用(即Sheet1!C4:D28 , Sheet1!C28:D90 )。 我注意到,如果我使用“图表数据系列”字段的命名范围,数据很好地显示(但我必须先创build该命名范围,以确保将INDIRECT公式包含在引用中(例如:命名范围Line1等于=INDIRECT(Sheet1!C4:C28) )。范围将是静态的。 在审查先前的问题,我似乎无法find一个解决scheme,将select该集合中的第一个单元格,并命名它,然后使用第二个单元格来定义该范围。 我想我可能需要ActiveWorkbook.Names.Add Name:=公式,并将其与一个循环(但我不能得到它使用select或单元格来定义添加名称方面,只有一个硬编码名称)。 如果解决scheme需要它,我可以返回并从单元格中提取单个范围(即: C4:D28 ),并且只有在使代码更简单的情况下才具有图表参考。 我知道我的第一个概述的尝试不是唯一的解决scheme,可能有一个更优雅。 我认为使用命名范围会加速图表工作,但是也许有办法切断这一步骤? 为所有这些范围的图表填充一张新图表将会锦上添花,但是我很乐意获得帮助,以便将数据设置为图表。 示例信息: NameRange1 (在单元格A1:A4中) WKD_1_NB WKD_2_EB WKD_3_EB SerRange1 (在单元格B1:B4中) WKDpivot C4:D43 WKDpivot C84:D140 WKDpivot C197:D233 (图表数据范围要求命名范围“WKD_1_NB”的引用为“= INDIRECT(WKDpivot!C4:D43)”,以便图表工作。