我正在尝试制作一个宏,它将通过Excel表运行并通过一组行并为每行制作一个图表。
我有一些代码可以满足我的需要,但是当我需要为每一行创建一个单独的图形时,我会将它们放在一个图形上。
`Dim i As Integer
Dim ws As Worksheet
Set ws = Sheets("Master Sheet")
For Row = 1 To 20
Dim my_cell
Dim rng As Range
Set rng = Sheets("Master Sheet").Range("J8:Y8")
For Each my_cell In rng
If my_cell <> "" Then
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'Master Sheet'!$J$8:$Y$8")
ActiveChart.ChartType = xlLineMarkers
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveSheet.Activate
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).XValues = "='Master Sheet'!$J$2:$Y$2"
ActiveChart.SeriesCollection(1).Name = "=""FP"""
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""Progress"""
ActiveChart.SeriesCollection(2).Values = _
"='Master Sheet'!$J$8,'Master Sheet'!$AF$8:$AH$8"
ActiveChart.DisplayBlanksAs = xlInterpolated
ActiveSheet.Activate
ActiveChart.ChartArea.Select
Else
Exit For ' Blank cell found, exiting
End If
Next
Next Row
End Sub`
如果有人能帮我看看我错在哪里,那就太好了。
不太确定是否已为下一个循环和每个循环构建了。理想情况下,您希望逐步遍历范围,并实际使用您在<代码>中为每个<代码>语句定义的值。在没有看到您的工作簿的情况下,我只是调整了一小部分数据来模拟创建图形。
我只需要使用相同的代码,在同一工作表上为每一行数字生成一个图形。您可以将这些原则应用到您的逻辑中。
Sub test()
Dim Row As Integer
Dim ws As Worksheet
Dim rng As Range
Set ws = Sheets("Sheet1") 'Change this to: Set ws = Sheets("Master Sheet")
For Row = 1 To 6
Set rng = ws.Range("B1:D1").Offset(Row, 0) 'Change to (I'm guessing here): ws.Range("$J$7:$Y$7").Offset(Row, 0)
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range(ws.Name & "!" & rng.Address)
ActiveChart.ChartType = xlLineMarkers
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).XValues = "='Sheet1'!$B$1:$D$1" 'Change to "='Master Sheet'!$J$2:$Y$2"
ActiveChart.SeriesCollection(1).Name = ws.Range("A1").Offset(Row, 0).Value 'Change this to whatever you want to name the graphs. This is currently set to dynamicly name each graph by the series name set in Column A.
'ActiveChart.Location Where:=xlLocationAsNewSheet 'uncomment this line to put on new sheet
'ws.Select 'Need to go back to worksheet
Next Row
Set ws = nothing
Set rng = nothing
End Sub
这里有几个链接可能会有所帮助;在for循环VBA和Excel VBA中创建和定位图形:图表制作宏将循环遍历唯一名称组并创建相应的图表?
谷歌还有许多其他链接。
如果我误解了你的问题,或者需要其他什么,请告诉我。
干杯干杯
首先,让我说这个网站是天赐之物! 我有一系列每月B2:AS40的数据。月份在A2:AS2中,A2:A40中是姓名列表,所有这些都在“Sheet1”中 经过之前在这里的一些搜索,我想出了以下内容,脚本为每一行制作一个新图表,创建一个标题,并以6个月的间隔放入MajorGridline,但是没有绘制数据。我这辈子都不知道为什么!! 请帮帮忙 样本数据: 将脚本更改为以下内容后: 脚本不会在每次运行时都
在本章中,我们来学习如何逐步编写一个简单的宏。 第1步 - 首先,在Excel 2016中启用“开发者”菜单。要完成这个设置,请点击左上角菜单:文件 -> 选项。如下图所示 - 第2步 - 点击“自定义功能区”选项卡并选中“开发工具”。然后点击“确定”。如下图所示 - 第3步 - “开发工具”功能区出现在菜单栏中。如下图所示 - 第4步 - 点击 “Visual Basic” 按钮打开VBA编辑器
问题内容: 怀疑在VBA ADO和Sql查询中… 我有2张纸,即adodc1,adodc2(在一本工作簿中) 在adodc1中具有“名称”,“部门”列,有时其具有“ Sect”列 在adodc2中具有“名称”,“部门”,“宗派”列 我想要的是当我运行Query..Vba时需要检查adodc1是否具有Sect列。 要返回为空值.. 下面的代码取自“”,根据我的需要进行了更改 它将执行的工作是来自两张
我得到这个错误: JsHint(W083):不要在循环中生成函数。 使用以下代码时: 基本上,我是在一个对象的属性中循环,对于每个属性,我使用操作符设置其他对象属性的真/假。 阅读一些文档,我看到: JSHint和ESLint在for、while或do语句体中遇到函数表达式。 这个错误合法吗? 如果是,如何更好地重写这些行? 如果否,如何使用JsHint禁用此特定错误验证
问题内容: 我正在尝试使用ApachePOI在XLSX电子表格中创建条形图,但是Excel一直在说内容存在问题,并在尝试打开文件时删除该图。这是我要执行的操作的完整代码: 谁能帮助我找到(并且很好地解决)这个问题?提前致谢! 问题答案: 对于不了解背景的用户,ApachePOI仅支持ScatterCharts和LineCharts为什么?。原则上描述了如何进行。 就像我说的。首先进行 最简单 的条
主要内容:循环控制语句当需要多次执行一段代码时,就可以使用循环语句。 一般来说,语句是按顺序执行的:函数中的第一个语句首先执行,然后是第二个,依此类推。 编程语言提供了各种控制结构,允许更复杂的执行路径。 循环语句允许多次执行语句或语句组。 以下是VBA中循环语句的一般形式。 VBA提供以下类型的循环来处理循环需求。点击以下链接查看详细信息。 编号 循环类型 描述 1 for循环 多次执行一系列语句,缩写管理循环变量的