EXCEL VBA 只对某些行的数据画图
假设我的表的A列是日期,比如有22/10/2011(50个)和23/10/2011(40个),还有其他的一些乱码。B列是随时间的一个变量。现在我希望用宏对AB两列中仅以2...
假设我的表的A列是日期,比如有22/10/2011(50个)和23/10/2011(40个),还有其他的一些乱码。B列是随时间的一个变量。现在我希望用宏对AB两列中仅以22/10/2011开头的行画图。我知道在某些编程里面可以用find筛选。请问在excel vba的格式是什么啊?
展开
4个回答
展开全部
一种方案是用VBA的FIND方法和FINDNEXT方法,对A列数据进行查找。具体语法如下:
Range.Find
方法
在区域中查找特定信息。
语法
表达式.Find(What,
After, LookIn, LookAt, SearchOrder,
SearchDirection, MatchCase, MatchByte,
SearchFormat)
表达式 一个代表 Range 对象的变量。
参数
名称
必选/可选
数据类型
说明
What
必选
Variant
要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。
After
可选
Variant
表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格的位置。请注意:After
必须是区域中的单个单元格。要记住搜索是从该单元格之后开始的;直到此方法绕回到此单元格时,才对其进行搜索。如果不指定该参数,搜索将从区域的左上角的单元格之后开始。
LookIn
可选
Variant
信息类型。
LookAt
可选
Variant
可为以下 XlLookAt 常量之一:xlWhole 或
xlPart。
SearchOrder
可选
Variant
可为以下 XlSearchOrder 常量之一:xlByRows 或
xlByColumns。
SearchDirection
可选
XlSearchDirection
搜索的方向。
MatchCase
可选
Variant
如果为 True,则搜索区分大小写。默认值为 False。
MatchByte
可选
Variant
只在已经选择或安装了双字节语言支持时适用。如果为 True,则双字节字符只与双字节字符匹配。如果为
False,则双字节字符可与其对等的单字节字符匹配。
SearchFormat
可选
Variant
搜索的格式。
返回值
一个 Range
对象,它代表第一个在其中找到该信息的单元格。
说明
如果未发现匹配项,则返回 Nothing。Find 方法不影响选定区域或当前活动的单元格。
每次使用此方法后,参数 LookIn、LookAt、SearchOrder 和 MatchByte
的设置都将被保存。如果下次调用此方法时不指定这些参数的值,就使用保存的值。设置这些参数将更改“查找”对话框中的设置,如果省略这些参数,更改“查找”对话框中的设置将更改使用的保存值。要避免出现这一问题,每次使用此方法时请明确设置这些参数。
使用 FindNext 和 FindPrevious 方法可重复搜索。
当搜索到指定查找区域的末尾时,此方法将绕回到区域的开始位置继续搜索。发生绕回后,要停止搜索,可保存第一个找到的单元格地址,然后测试后面找到的每个单元格地址是否与其相同。
另一种方案,是用FOR...NEXT循环遍历A列中的所有数据,用IF判断是否符合需要的条件,然后进行处理。
第三种方案,是用VBA直接对数据区域进行筛选,将筛选结果复制到空白工作表,再以此为基础作图。
Range.Find
方法
在区域中查找特定信息。
语法
表达式.Find(What,
After, LookIn, LookAt, SearchOrder,
SearchDirection, MatchCase, MatchByte,
SearchFormat)
表达式 一个代表 Range 对象的变量。
参数
名称
必选/可选
数据类型
说明
What
必选
Variant
要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。
After
可选
Variant
表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格的位置。请注意:After
必须是区域中的单个单元格。要记住搜索是从该单元格之后开始的;直到此方法绕回到此单元格时,才对其进行搜索。如果不指定该参数,搜索将从区域的左上角的单元格之后开始。
LookIn
可选
Variant
信息类型。
LookAt
可选
Variant
可为以下 XlLookAt 常量之一:xlWhole 或
xlPart。
SearchOrder
可选
Variant
可为以下 XlSearchOrder 常量之一:xlByRows 或
xlByColumns。
SearchDirection
可选
XlSearchDirection
搜索的方向。
MatchCase
可选
Variant
如果为 True,则搜索区分大小写。默认值为 False。
MatchByte
可选
Variant
只在已经选择或安装了双字节语言支持时适用。如果为 True,则双字节字符只与双字节字符匹配。如果为
False,则双字节字符可与其对等的单字节字符匹配。
SearchFormat
可选
Variant
搜索的格式。
返回值
一个 Range
对象,它代表第一个在其中找到该信息的单元格。
说明
如果未发现匹配项,则返回 Nothing。Find 方法不影响选定区域或当前活动的单元格。
每次使用此方法后,参数 LookIn、LookAt、SearchOrder 和 MatchByte
的设置都将被保存。如果下次调用此方法时不指定这些参数的值,就使用保存的值。设置这些参数将更改“查找”对话框中的设置,如果省略这些参数,更改“查找”对话框中的设置将更改使用的保存值。要避免出现这一问题,每次使用此方法时请明确设置这些参数。
使用 FindNext 和 FindPrevious 方法可重复搜索。
当搜索到指定查找区域的末尾时,此方法将绕回到区域的开始位置继续搜索。发生绕回后,要停止搜索,可保存第一个找到的单元格地址,然后测试后面找到的每个单元格地址是否与其相同。
另一种方案,是用FOR...NEXT循环遍历A列中的所有数据,用IF判断是否符合需要的条件,然后进行处理。
第三种方案,是用VBA直接对数据区域进行筛选,将筛选结果复制到空白工作表,再以此为基础作图。
追问
找出来了如何跟B列画图?能具体点儿么…谢谢~
追答
有了数据画图就简单了,如果实在不清楚VBA的绘制图表代码,可以先手工作一张图表,用宏记录器把整个过程录制下来,然后再研究现成的代码,将数据源修改为自己筛选出来的数据即可。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub 绘折线图()
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A5:G5"), PlotBy:= _
xlRows
ActiveChart.SeriesCollection(1).XValues = "=Sheet1!R9C1:R9C7"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
End Sub
A5:G5为数据区域
R9C1:R9C7 表示X轴标志所在单元格区域
第9行第1列(即A9)到第9行第7列(即G9)
如果不需要可以把这行删除,得到,然后横坐标就自动123456
Sub 绘折线图()
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A5:G5"), PlotBy:= _
xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
End Sub
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A5:G5"), PlotBy:= _
xlRows
ActiveChart.SeriesCollection(1).XValues = "=Sheet1!R9C1:R9C7"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
End Sub
A5:G5为数据区域
R9C1:R9C7 表示X轴标志所在单元格区域
第9行第1列(即A9)到第9行第7列(即G9)
如果不需要可以把这行删除,得到,然后横坐标就自动123456
Sub 绘折线图()
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A5:G5"), PlotBy:= _
xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询