以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  excel  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59621)

--  作者:发财
--  发布时间:2014/11/7 9:34:00
--  excel

Dim cj2 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
Dim y,m,d As Integer
Dim dt2 As Date
dt2 = vars("gg")
Dim dt1 As Date = #1/01/0001#
DateYMD(dt1,dt2, y, m, d)
y=y+1
m=m+1
d=d+1
Dim f1 As String = "E:\\财务数据汇总\\报税\\集资款.xls"
Dim f2 As String = "E:\\财务数据汇总\\报税\\利息抵.xls"
Dim Book1 As New XLS.Book(f1)
Dim Book2 As New XLS.Book(f2)
Dim Sheet1 As XLS.Sheet = Book1.Sheets("单位集资发放利息")
Dim Sheet2 As XLS.Sheet = Book2.Sheets("利息抵")
If Sheet1(1,6).Value = vars("cc") Then
    \'For n As Integer = 4 To 19
    Sheet2(7,3).Value = Sheet1(4,3).Value
    Sheet2(6,4).Value = Sheet1(4,5).Value
    Dim Proc As New Process
    Proc.File = (f2)
    Proc.Start()  
    \'Next
Else
    MessageBox.Show("导入报表日期不符!")
End If

为什么不能赋值?


--  作者:有点甜
--  发布时间:2014/11/7 9:37:00
--  

 你要先把book2保存以后,再打开才行啊


--  作者:发财
--  发布时间:2014/11/7 9:39:00
--  

如何复制book2的工作表?


--  作者:有点甜
--  发布时间:2014/11/7 10:02:00
--  
以下是引用发财在2014-11-7 9:39:00的发言:

如何复制book2的工作表?

 

不理解你什么意思

 

问题,请先详细说明说明;同时上传对应例子


--  作者:发财
--  发布时间:2014/11/7 10:20:00
--  
Dim cj2 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
Dim y,m,d As Integer
Dim dt2 As Date
dt2 = vars("cc")
Dim dt1 As Date = #1/01/0001#
DateYMD(dt1,dt2, y, m, d)
y=y+1
m=m+1
d=d+1
Dim f1 As String = "E:\\财务数据汇总\\报税\\集资款.xls"
Dim f2 As String = "E:\\财务数据汇总\\报税\\利息抵.xls"
Dim Book1 As New XLS.Book(f1)
Dim Book2 As New XLS.Book(f2)
Dim Sheet1 As XLS.Sheet = Book1.Sheets("单位集资发放利息")
Dim Sheet2 As XLS.Sheet = Book2.Sheets("利息抵")
Dim tg As String
If Sheet1(1,6).Value = vars("cc") Then
    \'For n As Integer = 4 To 19
tg =  Sheet1(4,1).Value
    Sheet2(2,3).Value = tg + "公司"
    Sheet2(7,3).Value = Sheet1(4,3).Value
    Sheet2(4,6).Value = Sheet1(4,5).Value
    Sheet2(7,5).Value = d
    Sheet2(2,6).Value = vars("cc")
book2.save(f2)
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.open(f2)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("利息抵")
ws.UsedRange.Formula = ws.UsedRange.Formula
wb.save
wb.close
App.Quit
                Dim Proc As New Process
                Proc.File = (f2)
                Proc.Start()
    \'Next
Else
    MessageBox.Show("导入报表日期不符!")
End If
n每增加1,就增加一个f2的利息抵表,如n= 4时,工作表为利息抵1,n = 5时,增加一个工作表利息抵2。。。。。。

--  作者:有点甜
--  发布时间:2014/11/7 10:21:00
--  
  例子发上来。
--  作者:发财
--  发布时间:2014/11/7 10:39:00
--  
  • Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("同期对比") \'指定要复制的工作表
    With Wb.WorkSheets
        Ws.Copy(After:=.Item(.Count))\'复制到最后面
        Ws.Copy(Before:=.Item(1))\'复制到最前面
        Ws.Copy  \'复制到一个新工作簿
    End With
    Wb.Save
    App.Quit
  • 如何改为sheets复制

--  作者:有点甜
--  发布时间:2014/11/7 10:44:00
--  
  什么意思?你是要复制多个表?那就一个一个的复制。
--  作者:发财
--  发布时间:2014/11/7 15:08:00
--  
    For n As Integer = 2 To Wb.WorkSheets.Count
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(n)
        If ws.cells(3,4).value = "公司" Then
            app.DisplayAlerts = False
            ws.delete
        End If
    Next

上述代码为什么会:无效索引。 (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
--  作者:有点甜
--  发布时间:2014/11/7 15:14:00
--  

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\test01.xls")
app.DisplayAlerts = False

For n As Integer = Wb.WorkSheets.Count to 2 step -1
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(n)
    \'If ws.cells(3,4).value = "公司" Then
        ws.delete
    \'End If
Next
app.visible = true