




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一 用VB封裝XLS成為exe可完成對XLS文件的保護 HYPERLINK /qzone/newblog/v5/%A1%B1http:/329554301/blog/1263607396%A1%B1 o 參考文件 t _blank 如何用VB6制作EXCEL作品之啟動封面(即用VB啟動XCEL) 費了不少的精力做好了一個EXCEL的文件,為了避開“是否啟用宏”的攔截詢問,可將xls文件進行封裝成為exe文件。 事先值得注意的是:1、將xls做成exe并不是指就能使您的VBA工程受到堅強的保護,如果有需要,也可在VB封裝XLS時設置登陸密碼。為了避免能將XLS文件另存為其他的XLS文件名而失去封
2、裝保護,需用VBA代碼禁止用戶使用“另存為”來保存工作簿,注意先要保護好VBA和工作表。您可以通過數種方法來提高xls文檔VBA工程防止查看的保護幾率,如屏蔽一些系統(tǒng)熱鍵、監(jiān)控VBE窗口的開啟、給文檔加上口令保護、加VBA口令、使VBA“不可查看”、利用宏表4.0來禁止用戶取消宏來查看文檔等等。 2、EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關閉宏(Sub Auto_Close())。它們的特性是:當用EXCEL打含有啟動宏的工簿時,就會自動運行啟動宏,同理,當關閉含有關閉宏的工作簿時就會自動運行關閉宏。但是通過VB來調用EXCEL工作表時,啟動宏和關閉宏
3、不會自動運行,需要在VB中通過命令來調用。因此,我們不要在模塊Sub Auto_Open()里編寫宏代碼,而應該在ThisWorkbook的Private Sub Workbook_Open()里來寫入代碼。 您手頭如已做好了一個xls文檔等待封裝,而且您機子上已安裝有VB6系統(tǒng),那么請進行以下的三大步操作:第一步:用VB制作EXE文件頭部分1、打開VB,“文件”-“新建工程”-“標準EXE”;2、此時會出現名為Form1的默認窗體編輯窗口,Form1將作為軟件啟動封面窗體,打開該Form1的屬性窗口,對如下屬性進行設置:BorderStyle=0,StartUpPosition=2,Icon
4、與Picture屬性設置成你需要的圖標(這也將成為你EXE的圖標)和設計好準備使用的圖片(即軟件封面)。3、往窗體中添加一個時鐘控件timer1,并將其InterVal屬性設為1000。4、確保VB里工程-引用里Microsoft Excel 9.0 Object Library前面的勾已打上.5、雙擊窗體打開代碼編輯窗口,錄入以下代碼:Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Lo
5、ngPrivate Declare Function PostMessage Lib user32 Alias PostMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Type FileSectionBytes() As ByteEnd TypePrivate Declare Function SetWindowPos Lib user32 (ByVal hwnd As Long, ByVal hWndInsertAfter As Long
6、, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPrivate Declare Function GetTempFileName Lib kernel32 Alias GetTempFileNameA (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As LongP
7、rivate Declare Function GetTempPath Lib kernel32 Alias GetTempPathA (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPrivate Const MAX_PATH = 260Private Const EXE_SIZE = 49152 這個數是本EXE文件實際字節(jié)大小(生成exe后查看屬性-字節(jié)大小-回頭修正),記下49152到第二步還得用。Private Type SectionedFileFiles() As FileSectionEnd Type
8、Dim StopTime As IntegerPrivate Sub Form_Activate()On Error Resume NextIf Command() = Then Main1End SubPrivate Sub Form_Load()On Error Resume NextIf Command() = ThenForm1.Visible = True將封面置為最頂層窗體SetWindowPos Form1.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1如果與VBA最頂層有沖突則去掉此句ElseForm1.Visible = FalseForm1.Timer1.
9、Enabled = TrueEnd IfEnd SubSub Main1()On Error Resume NextDim StartXLSByte, I, J As LongDim AppPath, XlsTmpPath As StringDim myfile As SectionedFileDim xlApp As Excel.Application 定義EXCEL類Dim xlBook As Excel.Workbook 定義工件簿類Dim xlsheet As Excel.Worksheet 定義工作表類AppPath = App.PathXlsTmpPath = GetTempFil
10、e() 取得XLS臨時文件名(帶路徑)If VBA.Right(App.Path, 1) = Then AppPath = VBA.Left(App.Path, VBA.Len(App.Path) - 1)Open AppPath & & App.EXEName & .exe For Binary As #1ReDim myfile.Files(1)ReDim myfile.Files(1).Bytes(1 To LOF(1) - EXE_SIZE)Open XlsTmpPath For Binary As #2Get #1, EXE_SIZE + 1, myfile.Files(1).Byt
11、es 此處數字要根據EXE實際頭文件大小更改設定Put #2, 1, myfile.Files(1).BytesClose #1Close #2Set xlApp = CreateObject(Excel.Application) 創(chuàng)建EXCEL應用類Set xlBook = xlApp.Workbooks.Open(FileName:=XlsTmpPath, Password:=ldhyob) 打開EXCEL工作簿,已知該工作簿已加打開口令為ldhyob,若您的工作簿沒有口令,則將此參數去掉以下星號括起部分代碼是往xls里寫數據(也可不往工作簿里寫數據的方法,而生成txt的方法),作用是保存
12、本exe的絕對路徑與臨時xls絕對路徑,以便于EXE重寫更新與臨時文件刪除*Set xlsheet = xlBook.Worksheets(temp) 設置活動工作表xlsheet.Cells(1, 1) = AppPath & & App.EXEName & .exe 將該EXE完全路徑存在工作表單元格內xlsheet.Cells(2, 1) = XlsTmpPath 將該EXE本次運行產生XLS臨時文件路徑存在工作表單元格內*xlApp.Visible = True 設置EXCEL可見Set xlApp = Nothing 釋放xlApp對象StopTime = 0Me.Timer1.En
13、abled = True 啟動時鐘End SubPrivate Function GetTempFile() As String 用來產生系統(tǒng)臨時文件名On Error Resume NextDim lngRet As LongDim strBuffer As String, strTempPath As StringstrBuffer = String$(MAX_PATH, 0)lngRet = GetTempPath(Len(strBuffer), strBuffer)If lngRet = 0 Then Exit FunctionstrTempPath = Left$(strBuffer
14、, lngRet)strBuffer = String$(MAX_PATH, 0)lngRet = GetTempFileName(strTempPath, tmp, 0&, strBuffer)If lngRet = 0 Then Exit FunctionlngRet = InStr(1, strBuffer, Chr(0)If lngRet 0 ThenGetTempFile = Left$(strBuffer, lngRet - 1)ElseGetTempFile = strBufferEnd IfEnd FunctionPrivate Sub Timer1_Timer()On Err
15、or Resume NextIf Command() ThenIf VBA.Dir(Command() ThenKill Command() 刪除本次運行遺留的臨時XLS文件ElseEndEnd IfElseStopTime = StopTime + 1 計時累加If StopTime = 1 Then Unload Me: End 2秒后自動關閉退出xlBook.RunAutoMacros (xlAutoOpen) 運行EXCEL啟動宏End IfEnd Sub6、生成EXE文件為abc.exe ?;仡^查看屬性-字節(jié)大小-之后修正本EXE文件中49152為實際字節(jié)大小。至此,文件頭部分已做完
16、。第二步:對xls文檔部分操作 1、給工作簿增加一個工作表temp,將其置為隱藏。2、在ThisWorkBook代碼區(qū)頭部加入以下代碼聲明以實現文檔關閉時EXE數據刷新:Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function PostMessage Lib user32 Alias PostMessageA (ByVal hwnd As L
17、ong, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const EXE_SIZE = 49152 此處數字為EXE文件字節(jié)數,一定要和文件頭的字節(jié)數對應。切記Private Type FileSection Bytes() As ByteEnd Type3、在Workbook_BeforeClose事件中加入如下代碼(對原有的代碼可保留):Dim myfile As FileSection 定義變量Dim comc, exec, xlsc As String 定義變量Application.V
18、isible = False 隱藏EXCEL主窗口exec = Worksheets(temp).Cells(1, 1).Valuexlsc = Worksheets(temp).Cells(2, 1).Valuecomc = exec & & xlscOpen exec For Binary As #1 打開EXE文件ReDim myfile.Bytes(1 To EXE_SIZE)Get #1, 1, myfile.Bytes 取得固有文件頭Close #1If VBA.Dir(exec) Then Kill execOpen exec For Binary As #1 生成新的EXE文件
19、Put #1, 1, myfile.Bytes 先寫入文件頭Open xlsc For Binary As #2 打開xls臨時文件ReDim myfile.Bytes(1 To FileLen(xlsc)Get #2, 1, myfile.BytesPut #1, EXE_SIZE + 1, myfile.Bytes 將xls部分追加進EXEClose #1Close #2ActiveWorkbook.ChangeFileAccess xlReadOnly 將活動工作簿設為只讀,便于執(zhí)行下面的語句,如不進行此操作,將沒法完成 Kill ActiveWorkbook.FullName 刪除當前
20、文件,其實是一個臨時文件 Application.QuitEnd Sub 4、禁止使用“另存為”來保存工作簿Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) Dim response As Long If SaveAsUI = True Then response = MsgBox(該系統(tǒng)不允許用“另存為” & _ 你要保存到原工作簿嗎? , vbQuestion + vbOKCancel) Cancel = (response = vbCancel) If Cancel = Fals
21、e Then Me.Save Cancel = True End If End Sub5、最后生成為xls文件備用。再保存,調用WINDOWS的任務管理器強制結束EXCEL進程,一定要是非正常退出.第三步 合并 將第一步得到的abc.exe與第二步得到的test.xls放到同一目錄下,再建立個bat文件,方法是:鼠標右鍵“新建”“文本文檔”,輸入以下內容:echo offcopy /b abc.exe + test.xls VB2xls.exe保存為BAT文件,取文件名(包括擴展名)為“合并bat“然后雙擊它,不一會就會發(fā)現在當前目錄下會多出一個VB2xls.exe文件,這就是封裝成品了。完成
22、OK!二 XLS封裝成EXE制作全攻略 作者:佚名假如您手頭已有一xls文檔等待封裝,假如您機子上已安裝有VB6開發(fā)系統(tǒng),那么請跟著往下操作: 第一步、用VB制作EXE文件頭部分 1、打開VB,“文件”-“新建工程”-“標準EXE”; 2、此時會出現名為Form1的默認窗體編輯窗口,Form1將作為軟件啟動封面窗體,打開該Form1的屬性窗口,對如下屬性進行設置:BorderStyle=0,StartUpPosition=2,Icon與Picture屬性設置成你需要的圖標(這也將成為你EXE的圖標)和設計好準備使用的圖片(即軟件封面),窗體的大小設置成您需要的合適值即可。 3、往窗體中添加一個
23、時鐘控件timer1,并將其InterVal屬性設為1000。 4、雙擊窗體打開代碼編輯窗口,錄入以下代碼:Private Declare Function SetWindowPos Lib user32 (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPrivate Declare Function GetTempFileName Lib k
24、ernel32 Alias GetTempFileNameA (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As LongPrivate Declare Function GetTempPath Lib kernel32 Alias GetTempPathA (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPrivate Const MA
25、X_PATH = 260Private Const EXE_SIZE = 81920 本EXE實際字節(jié)大小Private Type FileSection Bytes() As ByteEnd TypePrivate Type SectionedFile Files() As FileSectionEnd TypeDim StopTime As IntegerPrivate Sub Form_Activate()If Command() = Then Main1End SubPrivate Sub Form_Load()On Error Resume NextIf Command() = Th
26、en Form1.Visible = True SetWindowPos Form1.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1 將封面置為最頂層窗體Else Form1.Visible = False Form1.Timer1.Enabled = TrueEnd IfEnd SubSub Main1()Dim StartXLSByte, I, J As LongDim AppPath, XlsTmpPath As StringDim myfile As SectionedFileDim xlApp As Excel.Application 定義EXCEL類Dim xlB
27、ook As Excel.Workbook 定義工件簿類Dim xlsheet As Excel.Worksheet 定義工作表類AppPath = App.PathXlsTmpPath = GetTempFile() 取得XLS臨時文件名(帶路徑)If VBA.Right(App.Path, 1) = Then AppPath = VBA.Left(App.Path, VBA.Len(App.Path) - 1)Open AppPath & & App.EXEName & .exe For Binary As #1ReDim myfile.Files(1)ReDim myfile.Files
28、(1).Bytes(1 To LOF(1) - EXE_SIZE)Open XlsTmpPath For Binary As #2 Get #1, EXE_SIZE + 1, myfile.Files(1).Bytes 此處數字要根據EXE實際頭文件大小更改設定 Put #2, 1, myfile.Files(1).BytesClose #1Close #2Set xlApp = CreateObject(Excel.Application) 創(chuàng)建EXCEL應用類Set xlBook = xlApp.Workbooks.Open(FileName:=XlsTmpPath, password:=
29、ldhyob) 打開EXCEL工作簿,已知該工作簿已加打開口令為ldhyob以下星號括起部分代碼是往xls里寫數據(也可不往工作簿里寫數據的方法,而生成txt的方法),作用是保存本exe的絕對路徑與臨時xls絕對路徑,以便于EXE重寫更新與臨時文件刪除*Set xlsheet = xlBook.Worksheets(temp) 設置活動工作表xlsheet.Cells(1, 1) = AppPath & & App.EXEName & .exe 將該EXE完全路徑存在工作表單元格內xlsheet.Cells(2, 1) = XlsTmpPath 將該EXE本次運行產生XLS臨時文件路徑存在工作
30、表單元格內*xlApp.Visible = True 設置EXCEL可見Set xlApp = Nothing 釋放xlApp對象StopTime = 0Me.Timer1.Enabled = True 啟動時鐘End SubPrivate Function GetTempFile() As String 用來產生系統(tǒng)臨時文件名Dim lngRet As LongDim strBuffer As String, strTempPath As StringstrBuffer = String$(MAX_PATH, 0)lngRet = GetTempPath(Len(strBuffer), st
31、rBuffer)If lngRet = 0 Then Exit FunctionstrTempPath = Left$(strBuffer, lngRet)strBuffer = String$(MAX_PATH, 0)lngRet = GetTempFileName(strTempPath, tmp, 0&, strBuffer)If lngRet = 0 Then Exit FunctionlngRet = InStr(1, strBuffer, Chr(0)If lngRet 0 ThenGetTempFile = Left$(strBuffer, lngRet - 1)ElseGetT
32、empFile = strBufferEnd IfEnd FunctionPrivate Sub Timer1_Timer()On Error Resume NextIf Command() Then If VBA.Dir(Command() Then Kill Command() 刪除本次運行遺留的臨時XLS文件 Else End End IfElseStopTime = StopTime + 1 計時累加If StopTime = 1 Then Unload Me: End 2秒后自動關閉退出End IfEnd Sub 5、可保存工程,如取名為“工程1”; 6、進行編譯,“文件”-“生成工
33、程1.exe”,此時也可將生成的EXE另外取名,如取名叫abc.exe。 7、查看第6步生成的EXE文件字節(jié)大小,并將具體數字記下來,并將VB模塊中的“Private Const EXE_SIZE = 81920”保證一致(這里的81920是筆者例子的結果數字,每個人在實際時會有不同)。此例此步很重要,必須要做,該數字在xls文檔VBA中還要使用到。 至此,文件頭部分已做完,abc.exe文件也已生成于磁盤中。 特別提示:編譯前,確保VB里工程-引用里Microsoft Excel 9.0 Object Library前面的勾已打上. 第 二步、xls文檔部分操作 1、給工作簿增加一個工作表t
34、emp,將其置為隱藏。 2、增加xls文檔宏代碼以實現文檔關閉時EXE數據刷新。 打開xls文檔,打開VBE窗口,在ThisWorkBook代碼區(qū)頭部加入以下代碼:Private Const EXE_SIZE = 81920 此處數字為前面第7步得到的EXE文件字節(jié)數Private Type FileSection Bytes() As ByteEnd Type在Workbook_BeforeClose事件中加入如下代碼(對原有的代碼可保留): Dim myfile As FileSection 定義變量Dim comc, exec, xlsc As String 定義變量 Applicati
35、on.Visible = False 隱藏EXCEL主窗口 exec = WorkSheets(“temp”).cells(1,1).value xlsc = WorkSheets(“temp”).cells(2,1).value comc = exec & & xlsc Open exec For Binary As #1 打開EXE文件 ReDim myfile.Bytes(1 To EXE_SIZE) Get #1, 1, myfile.Bytes 取得固有文件頭 Close #1 If VBA.Dir(exec) Then Kill exec Open exec For Binary
36、As #1 生成新的EXE文件 Put #1, 1, myfile.Bytes 先寫入文件頭 Open xlsc For Binary As #2 打開xls臨時文件 ReDim myfile.Bytes(1 To FileLen(xlsc) Get #2, 1, myfile.Bytes Put #1, EXE_SIZE + 1, myfile.Bytes 將xls部分追加進EXE Close #1 Close #2 Application.Quit Shell comc, vbMinimizedNoFocus 刪除臨時xls文件 3、保存文檔,退出,關閉EXCEL。 第三步、將EXE與XL
37、S結合生成新的EXE 將第一步得到的abc.exe與第二步得到的test.xls(文件名隨你愿意取)放到同一目錄下,切換到MS-DOS模式,或者在該目錄下建立一個批處理文件即bat文件,這樣就不用切換到MS-DOS模式下輸入DOS命令了。建立bat文件的步驟方法是:鼠標右鍵“新建”“文本文檔”,輸入以下內容:echo offcopy /b abc.exe + test.xls main.exe保存,更改文件名(包括擴展名)為“合并.bat”,然后雙擊它,不一會就會發(fā)現在當前目錄下會多出一個EXE文件main.exe,這就是封裝成品了,你可以將其重命名為所需要的名稱。 好了,大功告成!徹底解決E
38、XCEL文件封裝成EXE后無法保存的問題 三 保護Excel工作表用VB可編寫直接控制Excel操作的程序,方法是用VB的OLE自動化技術獲取Excel的控制句柄,從而直接控制Excel的一系列操作。 1. 實現VB對Excel的直接控制后,可在用戶所編的程序中調用Excel,即從控制界面直接調入Excel,且退出Excel后又回到控制界面。 2. 用VB實現Excel的控制后,所有程序可編譯成完整的EXE執(zhí)行文件,直接在Win 平臺上執(zhí)行,運行環(huán)境更為簡潔明了,程序更易加密。 3.VB的OLE自動技術目前能實現對Excel多數功能的控制。 操作步驟 用VB控制Excel的操作步驟如下: 1.
39、 引用Microsoft Excel類型庫: *從工程菜單中選擇引用欄; *選擇Microsoft Excel X.0 Object Library(X.0為版本號); *選擇確定。 2. 聲明顯式數據類型: Dim xlApp as Excel.Application 3. 創(chuàng)建新實例,獲取Excel的控制句柄: Set xlApp=CreateObject(Excel.Application) 4. 由于Excel 啟動為不可見,調用后如需使其顯示出來用: xlApp.Visible=True 5. 對Excel操作完畢后,應交還控制句柄: Set xl=Nothing在得到在Excel對
40、象的控制句柄后,可對其下級對象逐級調用,就同使用VBA差不多:在VB編輯環(huán)境中,輸入“xlApp.”后一般會自動給出其屬性、方法等。也可按想實現的功能,在Excel中記錄宏,然后查看、修改代碼,將其放在自己的程序中Option ExplicitDim Db As DatabaseDim Rs As RecordsetPrivate Sub Form_Load()Set Db = OpenDatabase(c:tempbook1.xls, False, False, Excel 8.0;)Set Rs = Db.OpenRecordset(sheet1$)End SubPrivate Sub F
41、orm_Unload(Cancel As Integer)Rs.CloseDb.CloseEnd Sub =一直以來,EXCEL文件封裝成文件是大家(特別是初學者)關心的話題論壇里也有許多相關的帖子。但容易出現封裝成功,卻無法保存文件封裝之后更新的內容。本人經過試驗通過,代碼正常。除非你的EXCEL不支持API,否則一定行。若EXCEL暫時不支持API,偶暫時想到的方法是重新安裝EXCEL。重新安裝EXCEL后就可能支持API了原因是封裝后的文件在駐留內存時是無法對它進行更新的。所以要對它進行更新只有將它請出內存。方法是調用windows的Taskkill命令。在進程中增加:shell Tas
42、kKill /im & & /f ,注意中間的幾個空格不能少??偨Y,對要封裝的文件,首先得在原有的代碼基礎上增加以下代碼到對應的過程中。一、公共部分(就是ThisWorkBook的代碼區(qū)最頂端)加入以下代碼,用于聲明和引用:Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function PostMessage Lib user32 Alias Po
43、stMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const EXE_SIZE = 163840 此處數字為EXE文件字節(jié)數,一定要和文件頭的字節(jié)數對應。切記Private Type FileSectionBytes() As ByteEnd Type二、在Workbook_BeforeClose過程中必須有如下代碼。自己原有的代碼請參照加入。Private Sub Workbook_BeforeClose(Cancel As Boole
44、an) Application.ScreenUpdating = True Application.DisplayAlerts = False ThisWorkbook.Save 文件存盤 Dim myfile As FileSection 定義變量 Dim exec, xlsc, exen As String 定義變量增加了一個進程名定義exen Application.Visible = False 隱藏EXCEL主窗口 exec = Worksheets(Temp).Cells(1, 1).Value xlsc = Worksheets(Temp).Cells(2, 1).Value e
45、xen = Split(exec, )(UBound(Split(exec, ) Open exec For Binary As #1 打開EXE文件 ReDim myfile.Bytes(1 To EXE_SIZE) Get #1, 1, myfile.Bytes 取得固有文件頭 Close #1 關閉打開的EXE文件 Shell taskkill /im & exen & /f 強制結束EXE文件 Open exec For Binary As #1 重新生成新的EXE文件 Put #1, 1, myfile.Bytes 把原EXE文件文件頭寫進新的文件頭 Open xlsc For Bi
46、nary As #2 打開xls臨時文件 ReDim myfile.Bytes(1 To FileLen(xlsc) Get #2, 1, myfile.Bytes Put #1, EXE_SIZE + 1, myfile.Bytes 將xls部分追加進EXE Close #1 Close #2 ActiveWorkbook.ChangeFileAccess xlReadOnly 將活動工作簿設為只讀,便于執(zhí)行下面的語句,如不進行此操作,將沒法完成 Kill ActiveWorkbook.FullName 刪除當前文件,其實是一個臨時文件 Application.QuitEnd Sub提示:在
47、對EXCEL文件進行完編輯之后,先保存,然后一定要非正常退出,避免因為觸發(fā)Workbook_BeforeClose事件,而執(zhí)行Kill ActiveWorkbook.FullName這一句而刪除EXCEL文件。這就是為什么出現EXCEL文件“蒸發(fā)”在原因。非正常退出的方法:(兩種辦法均可,前提是先確保已經存盤)1、 一種方法是調用WINDOWS的任務管理器,強制結束EXCEL進程。2、 另一種方法是,在VBE的立即窗口下,執(zhí)行以下語句:Application.EnableEvents =False ,然后再關閉EXCEL文件即可!=四 保護Excel工作表的另類方法通過選擇“格式”菜單下的“工
48、作表”|“隱藏”命令,可以把當前的活動工作表隱藏起來,在這里我們通過自定義數字格式來隱藏單元格中的數值,在菜單欄中選擇“格式”、“單元格”命令,在“單元格格式”對話框選擇“數字”選項卡,在“分類”列表框中選擇“自定義”選項,然后在右邊的“類型”文本框中輸入“;”,單擊“確定”按鈕即可,隱藏后的數值只出現在編輯欄或正在編輯的單元格中,并且不會被打印出來。要將隱藏的數值重新顯示出來,可選定單元格,然后在“單元格格式”對話框的“數字”選項卡中,單擊“分類”列表中的“常規(guī)”選項,這樣就可以應用默認的格式,隱藏的數值就會顯示出來。二、我們也可以通過簡單的VBA編制宏對工作表的Visible屬性來設置隱藏
49、工作表,下面的代碼是名為“Hidesh”和“Showsh”的兩個宏,前者將工作表的Visible的屬性設置為False,當運行該宏之后,工作表Sheet1將變?yōu)殡[藏工作表,此時工作表不能被直接訪問,從而起到保護作用。后者是用來取消工作表的隱藏屬性。Sub Hidesh()Worksheets(sheet1).Visible=FalseEnd SubSub Showsh()Worksheets(sheet1).Visible=TrueEnd Sub 添加宏的的操作步驟如下:首先,選擇“工具”菜單下“宏”,然后選擇“Visual Basic編輯器”命令,在“Visual Basic編輯器”中選擇“插入”菜單下的“模塊”命令,然后在模塊的代碼編輯器中輸入上述代碼,單擊“保存”按鈕。要執(zhí)行宏命令,選擇“工具”菜單下的“宏”命令,打開“宏”對話框,在對話框中可以看到已經添加的宏,選擇要執(zhí)行的宏,然后單擊“執(zhí)行”按鈕,即可對工作表進行隱藏或者顯示。一、編輯宏 1、啟動Excel2003(其它版本請仿照操作),執(zhí)行“工具宏Visual Basic編輯器”命令,進入“Visual Basic編輯器”窗口(如圖1)。 2、在右側“
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年寫字樓獨家銷售合同
- 2025年企業(yè)信息技術服務合同統(tǒng)一流程
- 2025年串通詐騙貸款合同糾紛案
- 2025年發(fā)電機租賃業(yè)務合同范文
- 2025年雙向轉診醫(yī)聯體合同樣本
- 2025年個人股權抵押借款合同書樣式
- 家居裝飾材料環(huán)保性評估-深度研究
- 虛擬現實與增強現實-深度研究
- 綠色環(huán)保產品開發(fā)趨勢-深度研究
- 納米表面結構調控-深度研究
- 質量管理軟件操作手冊
- 翰威特任職資格撰寫培訓材料
- 大家排好隊說課
- 鐵氧體永磁材料
- 湘教版初中數學教材目錄
- 金蝶云星辰初級考試題庫
- GM/T 0107-2021智能IC卡密鑰管理系統(tǒng)基本技術要求
- 部編版七年級下冊語文第一單元課件
- 2023年山東省青島市統(tǒng)招專升本管理學自考真題(含答案)
- 文化產業(yè)政策與法規(guī)課件
- 人教版八年級下冊生物全冊教案完整版教學設計含教學反思
評論
0/150
提交評論