以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127367)

--  作者:cdwanghc
--  发布时间:2018/11/12 16:52:00
--  请教

图片点击可在新窗口打开查看此主题相关图片如下:问题.png
图片点击可在新窗口打开查看

--  作者:cdwanghc
--  发布时间:2018/11/12 16:55:00
--  
这段代码正常运行过。现在提示错误。
请高手看看,问题出在哪里?
谢谢

--  作者:有点甜
--  发布时间:2018/11/12 16:56:00
--  

1、ws1.cells这样用错误,应该改成ws1.UsedRange

 

2、在delete之前,应该先写 ws1.select

 

3、在各个操作的时候 ws1.select、ws2.select 适当的加入,看是否还报错


--  作者:cdwanghc
--  发布时间:2018/11/12 17:37:00
--  
还是报错。
将For n as integer=1 to wb.worksheets.count   
Next两句代码去掉后,可以将第二张表复制到第一张表中,并删除。
但加上循环就报错。

--  作者:有点甜
--  发布时间:2018/11/12 17:56:00
--  

1、你加上循环的意图是什么?循环里面加入select后是否还报错?

 

2、实例发上来测试,说明要做到的效果。


--  作者:cdwanghc
--  发布时间:2018/11/12 18:06:00
--  
希望做到:
工作簿里有N个工作表
要将第二到最后,所有工作表的内容,复制到第一个工作表里。

--  作者:cdwanghc
--  发布时间:2018/11/12 18:32:00
--  
如:
--  作者:有点甜
--  发布时间:2018/11/12 19:10:00
--  
以下是引用cdwanghc在2018/11/12 18:06:00的发言:
希望做到:
工作簿里有N个工作表
要将第二到最后,所有工作表的内容,复制到第一个工作表里。

 

Dim App As New MSExcel.Application
Dim fl = "d:\\test.xls"
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws1 As MSExcel.WorkSheet = Wb.WorkSheets(1)
For i As Integer = 2 To wb.WorkSheets.count
    Dim ws2 = Wb.WorkSheets(i)
    ws2.Select
    Ws2.UsedRange.Copy
    ws1.Select
    ws1.Cells(Ws1.UsedRange.Rows.Count+1,1).Select \'纵向拷贝
    ws1.paste
Next
\'app.DisplayAlerts = False
\'For i As Integer = wb.WorkSheets.count To 2 Step -1
    \'Dim ws2 = Wb.WorkSheets(i)
    \'ws2.delete
\'Next
\'Wb.Save
app.Visible = True
\'App.Quit