关于excel vba的问题
我想做一个宏,假设鼠标选取了x行数据,就可以自动把表格中第一列的x行数据和鼠标选中区域选中并且生成一个折线图现在有以下代码,可以但是只能实现整列选中,不能实现任意区域选中...
我想做一个宏,假设鼠标选取了x行数据,就可以自动把表格中第一列的x行数据和鼠标选中区域 选中 并且生成一个折线图
现在有以下代码,可以但是只能实现整列选中,不能实现任意区域选中
Sub inp()
Dim r, t As Range
Set t = [$A:$A]
Set r = ActiveSheet.Range(Selection.Address)
Union(t, r).Select
If ActiveSheet.ChartObjects.Count > 0 Then
ActiveSheet.ChartObjects.Delete
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=Union(t, r)
Else: ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=Union(t, r)
End If
End Sub
求大神帮忙 展开
现在有以下代码,可以但是只能实现整列选中,不能实现任意区域选中
Sub inp()
Dim r, t As Range
Set t = [$A:$A]
Set r = ActiveSheet.Range(Selection.Address)
Union(t, r).Select
If ActiveSheet.ChartObjects.Count > 0 Then
ActiveSheet.ChartObjects.Delete
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=Union(t, r)
Else: ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=Union(t, r)
End If
End Sub
求大神帮忙 展开
2个回答
展开全部
答:抱歉,我开始误解了你的意思,现在更改了代码,它的功能是获取选取区域与A列组合的区域,同样适合选择区域本身包含A列的情况。
Sub GetRng()
Dim r As Range
Dim t As Range
Dim ComRng As Range '最终取得的区域
If Not Intersect(Selection, Range("A:A")) Is Nothing Then
Set ComRng = Selection
Else
Set ComRng = Union(Range("A" & Selection.Row).Resize(Selection.Rows.Count, 1), Selection)
End If
End Sub
往下部分,你可以 Union(t, r) 替换为 ComRng。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的t=[$A:$A]选择的是整列数据,
Union之前的代码更改为:
Sub inp()
Dim r, t As Range
Set r = ActiveSheet.Range(Selection.Address)
Set t = Range("A" & r.Row & ":A" & r.Row + r.Rows.Count - 1)
Union(t, r).Select
'…………
end sub
这样T就变成了A列对应的行。
后面的做图部分代码没试
另外程序应该前面加个判断,是否选中了多行区域,选中的区域是否是A列……
追问
哇果然是大神啊,我确实需要个判断选中区域是否是A列。。。但两个条件分歧套一起我有点蒙圈了。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询