关于Excel中用 VBA 复试sheet2内容到sheet1中的 问题

在sheet1中创建个按钮(CommandButton1),当按它时,将sheet2中的特定单元格的内容(选择新粘贴,只复制字符)复制到sheet1中。我的程序如下:Pr... 在sheet1中创建个按钮(CommandButton1),当按它时,将sheet2中的特定单元格的内容(选择新粘贴,只复制字符)复制到sheet1中。我的程序如下:
Private Sub CommandButton1_Click()
r = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
s = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To r
a = Sheet1.Cells(i, 7)
For n = 1 To s
b = Sheet2.Cells(s, 3)
If a = b Then
Worksheets("Sheet2").(Cells(n, 3), Cells(n, 42)).Copy ‘这个地方出错,要求真确格式。
Worksheets("Sheet1").(Cells(i, 41)).Select
Worksheets("Sheet1").Paste
Exit For
End If
Next n
Next i
End Sub

若使用宏的编写方式,进行对sheet2的单元格选取时,选取方式为 range 会出现,程序如下:
Sheets("Sheet2").Select
Sheets("Sheet2").Activate
Range(Cells(n, 3), Cells(n, 42)).Select
Selection.Copy
Sheets("Sheet1").Select
Range(Cells(i, 41)).Select
ActiveSheet.Paste
也会出错,提示 range的select方法错误,请大虾给个舒爽的方案吧。重点是可以使用变量,复制需要的单元格
多谢了!
展开
 我来答
symoursx
2011-09-01 · TA获得超过573个赞
知道小有建树答主
回答量:587
采纳率:0%
帮助的人:239万
展开全部
Private Sub CommandButton1_Click()
call Macro1(3,3)
End sub
Sub Macro1(ByVal m As Integer, ByVal n As Integer)
Range(Cells(m, n), Cells(m + 3, n + 3)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Cells(1, 1).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End Sub

测试过了。

range的select方法错误:Range(Cells(i, 41)).Select,这句不对。
换成 Cells(i, 41).Select
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d0d636daa
2011-09-01 · 超过15用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:39.5万
展开全部
你直接写
thisWorksheets.sheets("Sheet2").range("A1").value=thisWorksheets.sheets("Sheet1").range("A1").value
不行吗。。。

Sheets("Sheet2").Select
Sheets("Sheet2").Activate
Range(Cells(n, 3), Cells(n, 42)).Select
Selection.Copy
Sheets("Sheet1").Select
Sheets("Sheet1").Activate
Range(Cells(i, 41)).Select
Selection.Paste
追问
我最终还是用  “  =  ” ,但是没有达到我的目的,还是不能复制粘贴,可能VAB中不能这么操作。谢谢了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yixiaxi663
2011-09-01 · TA获得超过3.1万个赞
知道大有可为答主
回答量:2.5万
采纳率:0%
帮助的人:1.4亿
展开全部
不需要VBA,用函数即可 B1
=vlookup(a1,sheet2!a:c,3,false)

向下填充

如果一定要用,就用VBA中的字典,先过滤2表,添加,然后再循环1表,在字典中查找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Excel开发
2011-09-01 · TA获得超过2915个赞
知道大有可为答主
回答量:1989
采纳率:53%
帮助的人:1017万
展开全部
Worksheets("Sheet2").(Cells(n, 3), Cells(n, 42)).Copy ‘这个地方出错,要求真确格式。
Worksheets("Sheet2").Range(Cells(n, 3), Cells(n, 42)).Copy
追问
不行,提示应用程序定义或,对象定义错误
追答
没仔细看,在模块级代码中可用,在工作表级代码中貌似不行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式