求大神帮看VBA实现在一个表中获取所有工作簿中指定值,代码错在哪,怎么修改

PrivateSubCommandButton1_Click()DimxAsIntegerDimwbAsWorkbookForx=1To71Setwb=Workbooks... Private Sub CommandButton1_Click()
Dim x As Integer
Dim wb As Workbook
For x = 1 To 71
Set wb = Workbooks.Open("G:/成长记录/测试/123(x).xls")
a = wb.Sheets("sheet4").Range("R14")
b = wb.Sheets("sheet5").Range("R14")
ThisWorkbook.Sheets("sheet1").Range("a(x)") = a
ThisWorkbook.Sheets("sheet1").Range("b(x)") = b
wb.Close False
Next
End Sub
要求获取每个工作簿第四个工作表和第五个工作表的R14单元格值,并复制到当前工作表
展开
 我来答
阳光上的桥
2014-07-31 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65812
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

主要原因是你没有程序设计经验,没明白变量与字符串常量的区别,例如你这个语句:

Set wb = Workbooks.Open("G:/成长记录/测试/123(x).xls")

实际上每次都打开的"G:/成长记录/测试/123(x).xls"文件,而不是"G:/成长记录/测试/123(1).xls"、"G:/成长记录/测试/123(1).xls"这样的文件,要实现这样的功能,需要写为:

Set wb = Workbooks.Open("G:/成长记录/测试/123(“ & x & ”).xls")



所有代码我修改如下:

Private Sub CommandButton1_Click()
    Dim x As Integer
    Dim wb As Workbook
    For x = 1 To 71
        Set wb = Workbooks.Open("G:/成长记录/测试/123("& x &").xls")
        a = wb.Sheets("sheet4").Range("R14")
        b = wb.Sheets("sheet5").Range("R14")
        ThisWorkbook.Sheets("sheet1").Range("a"& x) = a
        ThisWorkbook.Sheets("sheet1").Range("b"& x) = b
        wb.Close False
    Next
End Sub
gdfcx007
2014-07-31
知道答主
回答量:34
采纳率:0%
帮助的人:8.8万
展开全部

修改一下:range("a" & x)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2014-07-31 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2742万
展开全部
ThisWorkbook.Sheets("sheet1").Range("a" & cstr(x)) = a
ThisWorkbook.Sheets("sheet1").Range("b" & cstr(x)) = b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式