Thứ Hai, 2 tháng 11, 2009

Các code trong excel

Ẩn cột theo điều kiện
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Target.Value = 5 Then
Range("B:D").EntireColumn.Hidden = True
Else
Range("B:B").EntireColumn.Hidden = False
End If
End If
End Sub

Macro trong Excel - cách chữa trị

Macro trong Excel - cách chữa trị
candy
21-07-2008, 05:22 PM
Các bài viết dưới đây bao gồm : sưu tầm góp nhặt từ Internet và kinh nghiệm gặp phải, rất mong nhận được sự góp ý - ủng hộ từ các bạn :

Cách xóa sheet ẩn do virus macro Poppy tạo ra trong Excel

Bình thường khi mở Excel vào Format\ Sheet, mục Unhide thường nằm chìm (không có tác dụng). Nhưng một ngày nào đó, bạn mở Excel ra và vào Format\ Sheet thì thấy mục Unhide hiện lên, nếu chọn vào thì ta thấy trong Unhide có một Sheet bí ẩn: XL4Poppy. Đây là 1 loại virus macro có tên XF/Sic.gen; XF/ Sic.A, Formula.Excel.Classic, XF/ Sic.A.X97, Formula97Macro/ Sic.A, XF97/Poppy (xuất hiện lần đầu tiên năm 1998) chuyên lây nhiễm vào các file Excel.


http://cuocsongso.com/forum/attachment.php?attachmentid=57&stc=1&d=1216635373

ĐIỀU PHIỀN TOÁI CỦA MACRO NÀY LÀ:

- Nếu trong \Program Files\Microsoft Office\Office\ XLStart\ có file “Book1.”, hay một file *.xls đã có sheet này mà đã mở, thì khi tạo mới bất kỳ file *.xls nào cũng đều có sheet này đính kèm. Thế thì nó làm tăng dung lượng của file *.xls lên.
- Nếu lỡ trong file *.xla (file Add-in của Excel) có sheet này, mà trong \Program Files\Microsoft Office\Office\ XLStart\ không có file “Book1.”, thì khi mở Excel có chon file *.xla đó thì Excel sẽ mở hàng trăm Workbooks với tên là Sheet### (với ### là những số nguyên bắt đầu từ 1). Nếu không kịp xử trí thì Excel sẽ khởi động hàng trăm Workbook.
- Nếu ta chọn sheet này và xóa đi thì khi mở hay đóng Excel, hay file *.xls đã xóa sheet này đều có những thông báo rất khó chịu.
- Khi lưu mới file *.xls thì thư mục mặc định mà Excel sẽ mở là \Program Files\Microsoft Office\Office\ XLStart\ chứ không phải là My Document.
Vậy giải quyết như thế nào?
- Xóa file “Book1.” trong \Program Files\Microsoft Office\Office\ XLStart\
- Những file đã có sẵn sheet này, khi mở và thao tác xong thì phải vào \Program Files\Microsoft Office\Office\ XLStart\ xóa file “Book1.”
- Để khỏi mất công xóa file “Book.” khi mở file có kèm sheet này thì có thể tạo macro Add-in có Sub sau:

Public Sub Auto_Open()
On Error Resume Next
Kill “C:\PROGRAM
FILES\MICROSOFT
OFFICE\OFFICE\xlstart\Book1.”
End Sub

Lưu thành file *.xla nào đó và Tools.Add-Ins để chọn file này. Từ đây khi khởi động Excel thì Macro này sẽ xóa file “Book1.” trước.

PHẠM TRUNG (Bình Dương)

Virus XL4Poppy: tự mở Book1 khi khởi động Excel


Câu hỏi:

Em gặp một vấn đề với excel là mỗi khi em mở một file excel là nó thường mở thêm một workbook đi kèm có tên book1.xls và có một menu ? disable marcos or anable marcos rất lằng cù nhằng không biết làm sao để tắt nó đi, nên khi mỗi lần tắt file đi lại phải tắt 2 lần, rất khó chịu, xin các anh chị chỉ giúp

1. Bước 1

Bạn tìm trong 2 đường dẫn này :
- C:\Program Files\Microsoft Office\OFFICE....\XLSTART.
- C:\Documents and Settings\User (Ten User)\Application Data\Microsoft\Excel\XLSTART (Nếu máy của bạn có nhiều User với các quyền khác nhau)
Xóa Book1

2. Bước 2

Nếu dùng các phần mềm diệt Vius, và chạy ở chế độ Safe Mode mà vẫn không được thì file của bạn đã bị Macro rồi. Có rất nhiều loại, điển hình là con XL4Poppy (An Excel Formula Macro Virus (XF.Classic)), hay S.sic . . .

Khi bị nhiễm macro thì nguy cơ các file khác bị nhiễm là rất cao. Bạn hãy kiên nhẫn thực hiện nhé.

- Xóa Book1 như đã nêu (Nếu có)
- Mở Excel -> Tools -> Macro -> Security . . -> Medium
- Thoát Excel
- Bạn vào trang web tải asap-utilities về http://www.asap-utilities.com/news.php
- Cài đặt Asap-Utilities, khi addin của nó đòi phải Enable, bạn chọn Enable nhé.
- Cài đặt thành công khi trên thanh Menu Bar xuất hiện bên cạnh HELP là ASAP-Utilities
- Bạn thoát Excel
- Bạn mở file bị nhiễm macro lên. Khi hiện ra thông báo bạn nhớ chọn Disable
- Bạn vào AU (Asap-Utilities), chọn Sheets -> Show all sheets
- Xóa hết các sheets ẩn vừa hiện ra (Dĩ nhiên không gồm sheets chứa dữ liệu của bạn
- Bạn nhấn Ctrl+F3; nếu thấy có rất nhiều name thì bạn phải xóa hết nó đi bằng cách
Bạn vào AU (Asap-Utilities), chọn Range -> Delete all range names in the entire workbooks
Như vậy nó đã xóa đi tất cả các name của bạn đấy (Chấp nhận làm name lại vậy)
- Việc tiếp theo là bạn xem file nó có link với các file tầm bậy không. Bạn vào Edit -> Link, nếu thấy chú nào nghi ngò không phải của mình thì BREAK LINK
- Save As file này lại (Cẩn thận mà). Thoát khỏi Excel, sau đó mở lại file vừa Save as.
Các file khác cũng làm như vậy
Chú ý : Nế bạn không diệt mấy macro loại này trên tất cả các File trên máy, thì việc bạn bị nhiễm lại khi mở đồng thời cả file sạch và không sạch là hoàn toàn có thể.


3. Bước 3 : Cuối cùng


Để giải quyết vấn đề Book1 hiện lên lúc khởi động rất phức tạp, tốt nhất là máy phải sạch và file phải sạch. Còn cách tạm thời và cuối cùng là bạn tạo ra một file trống (trống tất cả : macro, name, lable, nội dung. . . . ). Lưu lại với tên book1. Sau đó xóa phần mở rộng và chép đè lên file book1 trong folder XLStart :
- C:\Program Files\Microsoft Office\OFFICE....\XLSTART.
- C:\Documents and Settings\User (Ten User)\Application Data\Microsoft\Excel\XLSTART (Nếu máy của bạn có nhiều User với các quyền khác nhau)

Sau đó khởi động excel lại.

Nếu không thích kiểu này thì bạn hãy khởi động Excel trong chế độ Safe mode của Excel bằng cách vừa khởi động Excel vừa nhấn phím Ctrl ->Chọn OK. Ở chế độ này thì các Add Ins và Macro sẽ không khởi động.

Theo MrOkebab

timer
21-07-2008, 05:31 PM
Cách xóa thủ công vào Insert/name/define và chọn từng tên để xóa.

Hoặc sử dụng Bkav AntiXFSic :

AntiXFSic là công cụ chuyên biệt dùng để diệt virus XFSic - họ virus macro duy nhất còn tồn tại tính tới thời điểm này. Bất cứ khi nào máy tính của bạn có dấu hiệu bị nhiễm virus XFSic như Excel tự động mở thêm sheet có tên yyyyy mỗi khi chạy, bạn hãy download AntiXFSic tại đây (http://cuocsongso.com/forum/attachment.php?attachmentid=65&stc=1&d=1217208657), chạy chương trình và làm theo các bước hướng dẫn sau để diệt virus:

- Trong cửa sổ chính của chương trình, ấn vào nút “Chon…”

http://www.bkav.com.vn/home/Images/AntiXFSic_chon.JPG

- Một cửa sổ sẽ hiện lên, cho phép bạn chọn thư mục hoặc ổ đĩa cần quét (là thư mục hoặc ổ đĩa chứa các file excel bị nhiễm virus XFSic).

http://www.bkav.com.vn/home/Images/AntiXFSic_chonthumuc.JPG

- Bạn chọn thư mục, hoặc ổ đĩa muốn quét và nhấn vào nút OK (ở dưới bên trái ), chương trình sẽ quay trở lại cửa sổ chính.

- Bạn nhấn vào nút Quét để chương trình bắt đầu thao tác quét và diệt, chương trình sẽ hỏi lại xem bạn có thực sự muốn quét hay không. Chọn Yes để tiếp tục.

http://www.bkav.com.vn/home/Images/AntiXFSic_quyet.JPG

- Tên các file bị nhiễm và loại virus nhiễm vào file được hiển thị trong mục Nhat ky. Bạn hãy đợi cho đến khi dòng chữ “Ket thuc” được thêm vào nhật ký để hoàn tất quá trình quét và diệt virus XFSic.

http://www.bkav.com.vn/home/Images/AntiXFSic_list.JPG


Chú ý:

- Trong khi đang quét, bạn có thể tạm dừng qúa trình này bất kỳ lúc nào bằng cách nhấn vào nút Dung

- Trước khi diệt virus, chương trình sẽ tự động tạo ra bản sao của file trước khi diệt tại thư mục Bkackup, nằm trong thư mục chứa file AntiXFsic.exe. Bạn có thể sử dụng Bkav Restore để khôi phục lại các file này, nếu muốn.


Bkav Restore

Bkav Restore là công cụ cho phép phục hồi những file bị nhiễm Virus đã được chương trình Bkav diệt. Mục đích là để trong trường hợp cần thiết muốn khôi phục lại file bị nhiễm Virus để nghiên cứu hoặc khi bạn sử dụng chức năng diệt tất cả Macro của Bkav mà trong đó có cả các Macro do bạn tự tạo ra.

Xin lưu ý là chương trình này chỉ khôi phục lại được những file bạn đã diệt bằng AntiXFSic, hoặc bằng Bkav với cấu hình "Sao lưu trước khi diệt" được chọn.

Hướng dẫn sử dụng chương trình:

1. Bấm vào đây (http://cuocsongso.com/forum/attachment.php?attachmentid=66&stc=1&d=1217209082) để download chương trình về máy tính của bạn.

2. Gỡ nén và chạy chương trình.

3. Nếu bạn định khôi phục các file đã diệt bằng Bkav và khi cài đặt Bkav bạn không thay đổi tuỳ chọn thư mục cài đặt thì bạn không cần thao tác gì ở bước 3 này. Ngược lại, bạn phải chọn thư mục Backup của Bkav (Mặc định là "C:\ProgramFiles\Bkav2002\Backup").

Nếu bạn định khôi phục các file đã diệt bằng AntiXFSic, hãy chọn thư mục Backup trong thư mục chứa chương trình AntiXFSic.

http://www.bkav.com.vn/home/Images/bkavrestore1.JPG

4. Chọn những file cần khôi phục sau đó ấn Select để chuyển các file đó sang cửa sổ bên phải.

http://www.bkav.com.vn/home/Images/bkavrestore2.JPG

5. Nhấn vào nút Restore để khôi phục lại những file đó.

http://www.bkav.com.vn/home/Images/bkavrestore3.JPG

Theo BKAV

Thứ Bảy, 31 tháng 10, 2009

Index - Lập trình với Form, controls và Objects

Index - Lập trình với Form, controls và Objects

1/ VBA căn bản:

- Tham chiếu địa chỉ của Cell - Thuộc tính Range

- Thuộc tính Cell

- Thuộc tính Offset

- Làm việc với dãy - Range

- Một số thuộc tính của đối tượng Range

- Một số Method của đối tượng Range

- Các ví dụ cơ bản về các thao tác với các tập tin và thư mục trong VBA cho Excel

2/ Hỏi đáp thắc mắc

- Lấy giá trị của ô trong VB như thế nào ?



- Có thể running Macro từ một Cell của Worksheet ?

3/ Macro :

- Macro đổi chữ thường sang chữ hoa

- Macro cộng giá trị trong ô hiện hành với giá trị trong một ô khác

- Macro chuyển chuỗi Text dạng công thức trong 1 Cell sang thành công thức tại Cell khác


- Macro trích KHTSCĐ

- Macro chuyển chuỗi Text dạng công thức trong 1 Cell sang thành công thức tại Cell khác

4/ Các hàm người dùng viết :
A. Hàm ứng dụng cho kế tóan :
- Hàm chấm công

- Hàm tính thuế TNCN

- Hàm chuyển số thành chữ
B. Hàm khác:
-Hàm VBA và các thủ tục thông dụng về File, Workbook, WorSheet, Thư mục

- Hàm nội suy 1 chiều và 2 chiều

-Mỗi tuần một hàm VBA

- Viết một hàm VBA "chuẩn"

5/ Ứng dụng VBA

-Tìm kiếm một giá trị thỏa mãn nhiều điều kiện

- Dùng VBA xác định vị trí của Form

- ADO và ConnectionString

- Khởi tạo biến từ file *.txt, *.ini

_ Tạo và dùng class module.

_ Xây dựng một ứng dụng kết hợp.

_ Xây dựng ứng dụng quản lý kho.

_ SunSystem và VBA.

_ Lập trình Windows API trên VB/VBA.

_ Thao tác với ListBox.

_ Yêu cầu người dùng phải Enable khi mở file.

_ Các cách thao tác với nút X.

_ Hàm Msgbox unicode.

- - Sắp xếp các Sheet - Bài toán sắp xếp

- Validation_Ext - Trợ giúp nhập liệu


6/ Thủ thuật VBA

- Cách đo tốc độ thực hiện của một thủ tục hoặc hàm

-Các thủ thuật nhằm tăng tốc chương trình

- Lỡ quên password khi Protect sheet thì sao?

- Class module - Kỹ thuật Tạo và Wrap đối lượng

- "HookExcelMessageA"- Thay thế những cảnh báo của Excel bằng nhiều ngôn ngữ

7/ Menu

_ Tạo menu cho ứng dụng trong Excel.

_ Tạo menu cho form trong VBA

Excel

Thủ thuật EXCEL (P1)

Chúng tôi giới thiệu với các bạn một vài thủ thuật làm việc với excel sau:


Vẽ hình vuông và bầu dục nằm trong cell
Khi sử dụng chức năng vẽ hình vuông và bầu dục trên thanh công cụ Draw, hình vẽ sẽ không nằm trên bất cứ một vùng cell nào trên bảng tính. Để hình vẽ nằm trong cell, khi vẽ bạn nhấn giữ phím Alt, hình vẽ sẽ đi theo từng cell khi bạn rê chuột.

Sao chép Formula
Khi bạn sử dụng công thức tính toán nào đó trong một cell bên trên và lại muốn sao chép tiếp xuống cell bên dưới thì bạn chỉ cần nhấn tổ hợp phím Ctrl – D để thực hiện

Hiển thị thời gian hiện hành
Nếu muốn hiển thị thời gian hiện hành lên một cell nào đó thì bạn có thể sử dụng công thức tính là Now() – Today(). Nếu bạn muốn hiển thị thời gian trong một cell nào đó cùng với dòng thông báo là “Bây giờ là : “ thì bạn nhập vào cell như sau : =”Bây giờ là : “ &TEXT( NOW ( ) ,”h:mm AM/PM”)

Các tham số giả lập trong Excel
Bạn cảm thấy khó khăn khi phải nhớ tất cả cú pháp của các hàm trong Excel? Để không phải nhớ bạn có thể chọn Insert/Function, chọn một hàm và điền tham số vào khung hội thoại. Muốn mọi việc nhanh hơn, gõ tên hàm rồi nhấn CTRL + A để dán các tham số giả lập vào. Ví dụ: nếu gõ “=PMT” vào một ô rồi nhấn CTRL + A, bạn sẽ có công thức =PMT(rate,nper,pv,fv,type). Thay thế các hàm giả lập bằng tham số thực tế sau đó thực hiện hàm.

Tập lái máy bay với Excel 97
Nếu bạn quá mệt mỏi khi phải làm việc với các bảng tính Excel97, và những con số khô khan luôn làm bạn nhức đầu, tại sao không thử thư giản bằng cách sau đây: 1/Mở một file trong Excel97; 2/ Nhấn phím F5 (để bật hộp thoại Goto lên); 3/Nhập vào "X97:L97" vào trong khung Reference và nhấn OK; 4/ Nhấn phím TAB một lần. (lúc này bạn phải ở ô M97); 5/ Giữ CTRL-SHIFT, tay kia dùng chuột nhấn vào nút Chart Wizard trên thanh công cụ (nút có vẽ hình một biểu đồ có màu xanh vàng đỏ).Bạn sẽ thấy một chương trình mô phỏng tập lái máy bay với màu sắc tương đối đẹp của Excel97 sẽ được chạy ở chế độ toàn màn hình. Có thể dùng chuột hoặc các phím mũi tên để điều khiển. Hãy thư giãn và khám phá thế giới bay của Excel97. Nếu không muốn bay nữa bạn nhấn phím ESC.

Đổi giá trị mà không cần dùng công thức
Bạn phải thường xuyên cập nhật bản giá bằng bảng tính Excel. Đôi lúc, bạn cần tăng một nhóm các giá trị lên số phần trăm nhất định nào đó, bạn sẽ tạo công thức rồi dùng lệnh Edit/Paste Special để thay giá trị ban đầu bằng kết quả mới tính toán và cuối cùng, bạn phải xóa công thức đó đi. Giải pháp sau có thể giúp bạn tiết kiệm được nhiều thời gian. Giả sử bạn muốn tăng 5% cho các giá trị trong vùng A2:A100. Hãy thực hiện các bước sau:

1. Nhập 1,05 vào một ô trống bất kỳ và chọn Edit/Copy.
2. Chọn vùng bạn muốn sửa đổi (ở đây là A2:A100).
3. Chọn Edit/Paste Special.
4. Trong khung hội thoại Paste Special, chọn Multiply rồi nhấn OK.
5. Xóa giá trị đã nhập vào ở bước 1 vì không đến cần nó nữa.

Thao tác này đã nhân các giá trị trong vùng được chọn lên 1,05 lần, tương đương với việc tăng lên 5%.

Thứ Năm, 22 tháng 10, 2009