excel vba 在一张工作表里选择另一张工作表

Sheets("Sheet3").Select这句代码放在模块里运行不会出错,但放在sheet2里运行会出现“运行时错误1004”问:放在sheet2里运行会出现上句怎么... Sheets("Sheet3").Select这句代码放在模块里运行不会出错,但放在sheet2里运行会出现
“运行时错误 1004”
问:放在sheet2里运行会出现上句怎么弄啊?
答的好追加5分。
经测试是Rows(j).Select与Sheets("Sheet3").Select同在sheet2里会出错,每个语句单独在一个过程中运行不会出错,这两个语句怎么放一起啊。
Sub 清()
'清除“姓名”字段中含“N/A”的无效数据。
'清除“姓名”字段中含“a”的暂坐生。
Dim i, j, n As Integer
n = 1
i = Range("A65536").End(xlUp).Row
For j = 1 To i
If IsError(Cells(j, 3)) Then
Rows(j).ClearContents
Else
If InStr(Cells(j, 3), "A") > 0 Then
Rows(j).Select
Selection.Copy
Sheets("sheet3").Select
Rows(n).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
n = n + 1
Rows(j).ClearContents
End If
End If
Next
End Sub
这个sheet2在vba左边是sheet2(sheet1)这样显示的。
这个sheet3在vba左边是sheet4(sheet3)这样显示的。
展开
 我来答
crazy0qwer
2013-05-02 · TA获得超过3299个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1267万
展开全部

应该是不会出错的,发表到我邮箱看看。或者把完整代码截图看、

987122817@qq.com
追问
贴出来,就是想把sheet2里不要的某行提取到sheet3里,并一行接一行地排在sheet3里。
电脑网不行啊,半天才看到刷新的网页内容。看你知道还有图标,应该是个高手,知道达人啊。
追答
如果代码是在某个表里面的话,类似 Rows(j)     range()   columns()    这些写法,表示的是代码所在表的行 ,单元格,或者列。
你代码如果是要操作Sheets("sheet3") 的,要加上表名 即 Sheets("sheet3").rows(j).select
如果不加表名则表示代码所在的表,而你上面代码已经把 sheet3 激活了,然后 rows(j) 没有加表名,程序就认为是sheet2, 对没有激活的表使用 select 就会出错。
解决办法就是都加上表名。

其实写代码完全不需要选择后再操作的。
Sub 清()
'清除“姓名”字段中含“N/A”的无效数据。
'清除“姓名”字段中含“a”的暂坐生。
Dim i, j, n As Integer
Application.ScreenUpdating = False '以后在所有代码前面加上这句,提高运行速度
n = 1
i = Range("A65536").End(xlUp).Row
For j = 1 To i
If IsError(Cells(j, 3)) Then
Rows(j).ClearContents '前面不加表名,表示代码所在的表,即相当于 Sheets("sheet2").rows(j)
Else
If InStr(Cells(j, 3), "A") > 0 Then
Rows(j).Copy
Sheets("sheet3").Rows(n).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
n = n + 1
Rows(j).ClearContents
End If
End If
Next
Application.ScreenUpdating = True '以后在所有代码后面加上这句,提高运行速度 跟上面一对的
End Sub
namehcj
2013-05-02 · TA获得超过275个赞
知道答主
回答量:110
采纳率:0%
帮助的人:22.5万
展开全部
把 Sheets("Sheet3").Select
改为
Sheet3.Select
更多追问追答
追问
好像是选择了sheet2外的工作表比如先选择了sheet3再运行sheet2里代码Rows(j).Select就会出错,Sheets("Sheet3").Select执行后就选择了sheet3,然后再运行Rows(j).Select就会出错了,这个怎么弄好啊
追答
你想完成什么功能呢?
就这样我不号判断哦
完整代码可以贴出来吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式