- Tham gia
- 12/8/06
- Bài viết
- 1,875
- Được thích
- 2,482
Chào bạnNGUYEN VAN LINH đã viết:Mình đã chọn High(low) trong mục AutoCompression như bạn nói, nhưng kết quả vẫn không thay đổi lắm (file.xls 10,485KB--->file.exe 10,197KB)
NGUYEN VAN LINH đã viết:Mình đã chọn High(low) trong mục AutoCompression như bạn nói, nhưng kết quả vẫn không thay đổi lắm (file.xls 10,485KB--->file.exe 10,197KB)
Một lần nữa làm phiền bạn!
Sub XLFileReducer()
Dim j As Long
Dim k As Long
Dim LastRow As Long
Dim LastCol As Long
Dim ColFormula As Range
Dim RowFormula As Range
Dim ColValue As Range
Dim RowValue As Range
Dim Shp As Shape
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
For Each ws In Worksheets
With ws
On Error Resume Next
Set ColFormula = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
Set ColValue = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
Set RowFormula = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set RowValue = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
On Error GoTo 0
If ColFormula Is Nothing Then
LastCol = 0
Else
LastCol = ColFormula.Column
End If
If Not ColValue Is Nothing Then
LastCol = Application.WorksheetFunction.Max(LastCol, ColValue.Column)
End If
If RowFormula Is Nothing Then
LastRow = 0
Else
LastRow = RowFormula.Row
End If
If Not RowValue Is Nothing Then
LastRow = Application.WorksheetFunction.Max(LastRow, RowValue.Row)
End If
For Each Shp In .Shapes
j = 0
k = 0
On Error Resume Next
j = Shp.TopLeftCell.Row
k = Shp.TopLeftCell.Column
On Error GoTo 0
If j > 0 And k > 0 Then
Do Until .Cells(j, k).Top > Shp.Top + Shp.Height
j = j + 1
Loop
If j > LastRow Then
LastRow = j
End If
Do Until .Cells(j, k).Left > Shp.Left + Shp.Width
k = k + 1
Loop
If k > LastCol Then
LastCol = k
End If
End If
Next
.Range(Cells(1, LastCol + 1).Address & ":IV65536").Delete
.Range(Cells(LastRow + 1, 1).Address & ":IV65536").Delete
End With
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub vidu()
Dim time1, i
time1 = Time()
For i = 1 To 20000
Cells(i, 1).Value = i
Next
time1 = Second(Time() - time1)
MsgBox ("Thoi gian het :" & time1 & " giay")
End Sub
Gởi Chibichibi đã viết:Gửi các bạn. Lỡ tay chuyển XLS sang EXE mà không để lại XLS, nay muốn chuyển lại thì dùng cái chi vậy?
Vậy Chibi làm thủ công thôi, mở 1 workbook khác rồi select all sheet copy qua và copy hết module và form (nếu có). Sau đó Save lại. Chibi thử xem.chibi đã viết:Mình đã chót đặt ReadOnly và Close Excel running nên không Save As được.
Mình thử 6,5M còn 1,8M , cảm ơn bạnXin gởi các bạn dùng thử XLStoEXE
Khi convert thành file .EXE (nhưng máy vẫn phải cài Excel) thì mình thấy dung lượng file giảm đáng kể 9Mb còn khoảng 2Mb. Mỗi lần Save có tạo file Backup.
Các bạn dùng thử và cho biết ý kiến.
TDN.
Bác nào có crack thì share cho anh em luôn nhé.
THanks
Thường thì project chứa nhiều Form hay hình ảnh thì sẽ được nén lại rất nhiều, nhưng nếu toàn là code thì các bác đừng hy vọng khi nén giảm đi nhiều.
hix, các bác thông cảm nhé, chắc do mình đọc không kỹ nên mình không biết diễn đàn chúng ta không được phép chia sẽ những điều trên. Nếu có điều gì không phải xin các bác bỏ qua cho em nhé.Bạn hãy cẩn thận
Các DLL toàn chứa class thôi (no form) được nén với kết quả là 80% (By PECompact)
Mình đã convert thử và thấy có 2 điểm hay: 1 là file đc nén rất nhẹ đặc biệt các file chỉ có các con số (file của mình đến 35mb mà đc nén thành 8mb) , thứ 2 là tất cả các macro đều đc kèm theo
Tuy nhiên về mặt bảo mật thì vẫn vậy, protect sheet cỡ nào cũng đc bẻ khoá.
Nếu dùng Lockxls thì tạm thời bó tay đấy!
tôi có download một file .exe, khi open thì chạy ra là dạng file .xls, nhưng tôi không xem được công thức để học hỏi, vậy có cách nào xem được hay chuyển đổi sang file .xls hay không
Cảm ơn các thầy nhiều
Mình cũng vừa mới phát hiện ra topic này. Hay quá... Cảm ơn bác tedaynui nhiều! Mới down về dùng thử, nhưng mình cũng kịp khám phá ra một số thứ:Mình cũng chưa biết cơ chế làm việc của nó thế nào nữa. Nếu bạn để ý sẽ thấy trong MS Excel thì hiển thị *.EXE nhưng trong VBAProject thì lại hiển thị *.XLS
Vậy là sao ? Anh chị nào biết giải thích giúp dùm.
Xin cám ơn.
Mình đã dùng thử để nén 1 file xls 24.4Mb (theo các tiêu chuẩn mặc định), kích thước file exe chỉ còn 5.91Mb, vậy là quá tốt rồi. Tuy nhiên khi chạy exe thì có 1 Macro không chạy được (công việc chính của Macro này là sao chép dữ liệu từ 1 Workbook này sang 1 Workbook khác, nhiều lần - cụ thể là việc tạo sổ điểm cá nhân cho GVBM, tạo bảng điểm lớp này xong thì tạo bảng điểm lớp khác). Khi chạy, có tới hơn 80 cửa sổ Excel được mở (Nhưng khi khởi động file .EXE sẽ thấy chậm hơn (có lẽ chờ bung file XLS)
Với thắc mắc này, công nhận là cũng khó chịu thật, cứ phải xóa thường xuyên thì...Việc chuyển đổi file xls sang exe mình thấy bất tiện là khi lưu nó tạo ra back up, không biết mọi người giải quyết thế nào.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim DDan, TenFile, BakFile, NextBakFile, TexFile As String
Dim i As Byte
Dim iFNumber As Integer 'File number
On Error Resume Next
TexFile = ActiveWorkbook.Path & "\" & "XLtoEXE.log"
iFNumber = FreeFile
Open TexFile For Input As #iFNumber
Input #iFNumber, DDan
Close #iFNumber
TenFile = ActiveWorkbook.Name
BakFile = DDan & "\Backup of " & Left(TenFile, Len(TenFile) - 4) & ".exe"
If Dir(BakFile) <> "" Then Kill (BakFile)
i = 1
Do
BakFile = DDan & "\Backup of " & Left(TenFile, Len(TenFile) - 4) & i & ".exe"
If Dir(BakFile) <> "" Then Kill (BakFile)
i = i + 1
NextBakFile = DDan & "\Backup of " & Left(TenFile, Len(TenFile) - 4) & i & ".exe"
Loop While Dir(NextBakFile) <> ""
End Sub
Mình cũng vừa mới phát hiện ra topic này. Hay quá... Cảm ơn bác tedaynui nhiều! Mới down về dùng thử, nhưng mình cũng kịp khám phá ra một số thứ:
Với thắc mắc này, công nhận là cũng khó chịu thật, cứ phải xóa thường xuyên thì.... Để xử lý tên này, mình vừa thử viết một Sub như sau. Tất nhiên chỉ là để xử lí tình thế. Bác nào có cao kiến thì trao đổi nhé (mình kiếm mấy câu lệnh trên GPE rồi nối chúng lại thôi - Amateur mà)
PHP:Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim DDan, TenFile, BakFile, NextBakFile, TexFile As String Dim i As Byte Dim iFNumber As Integer 'File number
Dim iFNumber As Integer File number
Anh ơi, sao trong đoạn code này sao lại có dòng:
Em không biết nó hỗ trợ chỗ nào?PHP:Dim iFNumber As Integer File number
Dim iFNumber As Integer 'File number
Nếu viết thế này thì hiểu được không?
Mã:Dim iFNumber As Integer 'File number
Còn dấu nháy (') thì hiểu thế nào?Em hiểu đó là tên biến thui ah. Và tên biến này được gán kiểu Integer.
Còn dấu nháy (') thì hiểu thế nào?
(php code của GPE hôm nay làm cho dấu ' không hiển thị.)
Việc tạo ra backup file hay không là do ta tùy chỉnh chương trình, cần gì viết code cho nó mệt nhỉ?Vâng. Anh ptm0412 cho em hỏi thêm nha: Sao em bỏ đoạn code này vào Thisworkbook và chạy thì nó vẫn tạo ra các file bakup vậy? Nhờ anh tư vấn dùm em nha!?
Việc tạo ra backup file hay không là do ta tùy chỉnh chương trình, cần gì viết code cho nó mệt nhỉ?
Tôi không biết bạn làm cái gì nhưng từ trước giờ khi dùng XLStoEXE, nếu không muốn tạo ra Backup file thì tôi sẽ check vào mục Read OnlyHiện tại em đang muốn đóng gói 1 chương trình. Mà convert xls sang exe thì khi chạy nó lại tạo ra rất nhiều file backup rất khó chịu. Giờ em đang muốn khống chế không cho tạo file backup và chỉ cho phép tạo 1 file backup trong 1 khoảng thời gian nhất định đó hay khi đó chương trình thui.
Xin các thầy chỉ dùm em ha!
Tôi không biết bạn làm cái gì nhưng từ trước giờ khi dùng XLStoEXE, nếu không muốn tạo ra Backup file thì tôi sẽ check vào mục Read Only
View attachment 57482
Đúng vậy, chức năng này gây ra sự phiền toái quá, mình đâu muốn nó tạo ra file backup, khi convert thì chức năng này mới có ý nghĩa, còn khi sử dụng file exe rồi không biết nó tạo ra cái backup để làm gìChào bạn
Thật ra mình cũng thử qua và thấy hơi khó chịu vì lúc nào nó cũng tạo 1 file backup như bạn nhận xét (trong khi chức năng này mình không cần). Mặc dù, trong Option của XLStoEXE có Save Overwrite Buckup nhưng mình cũng thấy khi save là nó cũng tự tạo ra file backup ???
TDN
Đúng vậy, chức năng này gây ra sự phiền toái quá, mình đâu muốn nó tạo ra file backup, khi convert thì chức năng này mới có ý nghĩa, còn khi sử dụng file exe rồi không biết nó tạo ra cái backup để làm gì
Bạn cho mình hỏi vậy có cách nào cover ngược lại không?Xin gởi các bạn dùng thử XLStoEXE
Khi convert thành file .EXE (nhưng máy vẫn phải cài Excel) thì mình thấy dung lượng file giảm đáng kể 9Mb còn khoảng 2Mb. Mỗi lần Save có tạo file Backup.
Các bạn dùng thử và cho biết ý kiến.
TDN.
TND,
Mình đã dùng thử file XLStoEXE. Sau khi Convert file.xls 10.4MB thành file.exe, dung lượng file chỉ giảm được tí xíu (còn 10.2MB). Chắc là mình đã làm sai thao tác gì phải không? Nhờ bạn hướng dẫn thêm.
Cảm ơn,
NVL
Các anh có cách nào dùng XLStoEXE mà chạy vòng lặp được nhanh ko ạ. Chuyển chạy file qua EXE tốc độ e thấy chậm hơn 10 lần chạy xls ạ.Chào các bạn, rất tiếc là XLStoEXE tạo ra .exe có tốc độ tính toán rất chậm. Các bạn thử đoạn code sau và cho ý kiến nhé.
Mã:Sub vidu() Dim time1, i time1 = Time() For i = 1 To 20000 Cells(i, 1).Value = i Next time1 = Second(Time() - time1) MsgBox ("Thoi gian het :" & time1 & " giay") End Sub
pass unrar là gì v Anh?Download version mới về mà xài:
http://cpap.com.br/orlando/download2/XLtoEXE.zip
123abc, bạn thử xem có được ko nhapass unrar là gì v Anh?