主题:弄的我睡不着的基础问题
恶少老七
[专家分:110] 发布于 2007-12-30 23:45:00
还是在 excel 里
我录制了一个关于生成图表的宏,其中源数据区的选择代码我认为是这一句
ActiveChart.SetSourceData Source:=Sheets("数据处理").Range(H5:H30), PlotBy:= _
xlColumns
我想实现通过代码控制 源数据区 选择问题
通过在网络上查找资料
将关于Range的部分修改成Range(Cells(x, 6), Cells(y, 6))
x=5,y=30都已经定义.
但是调试时提示:方法'Cells'作用于对象'_Giobal'失败
我承认VB基础薄弱..但我手里的那份VBA资料里也没提到 range 的基本句法..只好再来这里求助..
顺便请大家给我介绍一份比较不错的VBA资料
最后更新于:2007-12-31 10:56:00
回复列表 (共40个回复)
11 楼
华山论剑 [专家分:5310] 发布于 2007-12-31 12:04:00
If Selection.Address(False, False) <> "A1:A7" Then
Exit Sub
End If
或者:
If Selection.Address<> "$A$1:$A$7" Then
Exit Sub
End If
要判断所有Cell是否为空:
Dim oCell As Range
For Each oCell In Selection.Cells
If IsEmpty(oCell) Then
Exit Sub
End If
Next
Set oCell = Nothing
元旦节后才会再上网了,祝节日快乐。
12 楼
恶少老七 [专家分:110] 发布于 2007-12-31 12:05:00
下班了,下午再来试吧.先去打指纹.
13 楼
恶少老七 [专家分:110] 发布于 2007-12-31 12:07:00
新元年快乐~
14 楼
恶少老七 [专家分:110] 发布于 2007-12-31 13:46:00
我只用了判断为空的条件。略加修改现在已解决。
不过判断是否是在A列选择数据定的太死,只判断A1:A7。这个并不合适。
节后再说吧
15 楼
华山论剑 [专家分:5310] 发布于 2008-01-02 10:54:00
用"If Selection Is nothing Then", 可能行不通,除非没有工作表打开或者隐藏,就算是开个新的工作表,默认的Selection就是A1。
如果还没有达到理想的判断,请告诉你想要的详细判断条件(一个或者多个),再来看看怎么做。
16 楼
恶少老七 [专家分:110] 发布于 2008-01-04 11:07:00
通过你11楼的代码
我实现了对所选为空的判断
但是,所选不为空并不满足要求.
比如: 所选必须是数据(因为selection也可能是图表,控件等等.这一点无法判断)
更进一步
要求必须是A列的数据.(是A列就行,不能指定A1:A7)
条件这样设置我想就足够严谨了.不过我想最主要的还是判断所选必须是数据,不然容易出现运行出错.
17 楼
华山论剑 [专家分:5310] 发布于 2008-01-04 12:00:00
If Selection.Columns.Count <> 1 And _
Selection.Cells(1, 1).Column <> 1 Then
Exit Sub
End If
"Selection.Columns.Count <> 1"判断是否只选择了一列,选择多列就不符合。
"Selection.Cells(1, 1).Column <> 1"判断所在列是否在A列。
对于数字判断,用isnumeric函数就行了:
Dim oCell As Range
For Each oCell In Selection.Cells
If Not IsNumeric(oCell) Then
Exit Sub
End If
Next
还有,如果要判断所选单格的个数:
If Selection.Cells.Count < 7 Then
Exit Sub
End If
18 楼
恶少老七 [专家分:110] 发布于 2008-01-04 15:16:00
条件的设置.我自己再琢磨琢磨吧.我想我应该能拿下.
下面又是一个数据区域选择
ActiveChart.SeriesCollection(1).XValues = "=数据处理!R2C1:R64C1"
我还是想用变量控制,实现 r2c1:r(2+a)c1 的区域选择 该怎么写呢?(a 是我程序中生成的一个整数)
19 楼
华山论剑 [专家分:5310] 发布于 2008-01-04 16:42:00
Range(Cells(2,1), Cells(2+a, 1))
20 楼
恶少老七 [专家分:110] 发布于 2008-01-05 08:45:00
这个句法在前面的帖子中您已经教会我了
但是放在这句代码中却不知道该怎么用,还请指教.
我来回复