如題:
在程序外寫了
Dim Excel As Excel.Application
Dim Workbook As Excel.Workbook
Dim Sheet1 As Excel.Worksheet
Dim sheet2 As Excel.Worksheet
Dim sheet3 As Excel.Worksheet
一個程序中
Set Excel = CreateObject("excel.application")
Set Workbook = Excel.Workbooks.Open(App.Path & "\temp.xls")
Set Sheet1 = Workbook.Sheets("sheet1")
打開了temp.xls 并進行了賦值,如何在另一程序中使用這個物件呢?
再次使用以上陳述句么?
uj5u.com熱心網友回復:
把Workbook或Sheet1作為引數傳過去啊!uj5u.com熱心網友回復:
這個東西要么定義成表單級變數,要么定義成全域公有變數。如果只是在某個模塊里使用到,就定義成表單級變數,用private或dim都可以;如果在你的工程中的任何地方都有可能需要,那就定義成全域公有變數,如:
在標準模塊里定義成全域公有變數,然后在你的工程的所有模塊里都能直接呼叫。
public Excel As Excel.Application
public Workbook As Excel.Workbook
public Sheet1 As Excel.Worksheet
public sheet2 As Excel.Worksheet
public sheet3 As Excel.Worksheet
然后比如在form1或form2里都可以直接使用sheet1、sheet2,sheet3.....
uj5u.com熱心網友回復:
明白了,如果excel 檔案已經打開的情況下使用Getobject ,打開多個作業簿的情況下,然后用workbooks(i)的方法確定使用那個作業簿uj5u.com熱心網友回復:
同一個程式直接傳遞物件!不同程式才用GetObject()。
uj5u.com熱心網友回復:
不是很明白,定義為Public 物件或 在sub外定義為表單級的物件,同一個工程中,同一個表單,不同的SUB 如何使用?
該sub中使用完成,需要set ??=nothing么?
uj5u.com熱心網友回復:
1)如果方法a呼叫方法b定義為a的區域變數,a創建,作為引數傳給b,a最后釋放。
2)如果a、b都是用戶操作后分別呼叫的,沒有確定的先后關系
定義為表單級變數,Form_Load中創建,Form_Unload中釋放。
uj5u.com熱心網友回復:
還是不太懂,我再baidu仔細考慮一下uj5u.com熱心網友回復:
我有以下看法:1、你的陳述句沒有退出與物件釋放;
2、實作通用呼叫,可以寫成通用的程序或函式;示例如下:
Public Function OpExcelFile(TempExcelFiles as string,SheetName as string) as boolean
‘A申明變數
’B操作(見你自己的代碼)
‘C釋放物件
End Function
然后在另外的地方呼叫這個函式就可以了!
---------------------------------------------------------
uj5u.com熱心網友回復:
Private Sub Command4_Click()Set excel1 = New Excel.Application
excel1.Visible = False
excel1.Workbooks.Add
excel1.Sheets("sheet1").Range("A2").CopyFromRecordset Adodc1.Recordset
With excel1.Sheets("sheet1")
.Cells(1, 1) = "單號"
.Cells(1, 2) = "酒店名稱"
.Cells(1, 3) = "廚房"
.Cells(1, 4) = "品名"
.Cells(1, 5) = "數量"
.Cells(1, 6) = "單位"
.Cells(1, 7) = "單價"
.Cells(1, 8) = "總價"
.Columns("g:g").NumberFormat = "¥0.00"
.Columns("h:h").NumberFormat = "¥0.00"
.Columns("i:i").Delete
.Columns("i:i").Delete
.Columns("i:i").Delete
.Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Cells.Font.Size = 11
.Rows.AutoFit
.Columns.AutoFit
End With
excel1.Visible = True
End Sub
參考代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/96746.html
標籤:VB基礎類
