Dùng VBA để Undo câu lệnh Macro

  • Thread starter Bình_OverAC
  • Ngày gửi
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
11
18
44
Nha Trang
Topic này để bắt đầu nói về Undo những câu lệnh Macro của Excel:

Thưa các bác:

- Khi thực hiện các lệnh với macro thì không thể undo trong Excel được. Do đó em muốn biết có cách nào thay đổi được chuyện này không?
- Ý tưởng của em là can thiệp trực tiếp vào danh sách dòng lệnh thực hiện của Excel. Không biết ý tưởng này của em có thể trở thành sự thật được không??
 
Sửa lần cuối:
Khóa học Quản trị dòng tiền
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
49
Hà Nội
www.bluesofts.net
To OverAC
Để undo những gì Macro đã thực hiện thì I cũng chưa làm được và đang cố gắng nghiên cứu.
Can thiệp trực tiếp vào danh sách các dòng lệnh của Excel? I chưa hiểu lắm về ý tưởng của bạn. Lệnh được viết trong VBA? hay công thức trên Cell?
Nếu để thay đổi dòng lệnh trong một Module bạn phải học "MS Excel 4.0 Macro". Bạn sẽ viết lệnh trên một Sheet đặc biệt (Macro 4.0 Sheet) và đặt tên Macro, sau này bạn có thể viết lệnh thay đổi nội dung của Sheet đó đồng nghĩa là thay đổi lệnh trong Macro. Đây là một trong các cách người ta viết Virus Macro.
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
11
18
44
Nha Trang
Thôi thế thì em lại gọi là bác vậy.
Ý tưởng về undo của em trong việc thực hiện Macro ở bước đơn giản như sau:
- Lưu lại danh sách dòng lệnh thực hiện của undo
- Lưu lại tình trạng hiện thời của file
- Chèn thêm vào danh sách dòng lệnh thực hiện của undo lệnh thực hiện Macro tên...
Khi thực hiện lệnh undo đến lệnh thực hiện macro thì mở lại load lại file cũ (đã lưu ở trên).
- Load lại danh sách các lệnh thực hiện đã lưu
 
T

Tran Chau

Guest
23/11/04
149
0
0
66
TP Ho Chi Minh
undo macro

OverAC nói:
To Tuanktcdcn

*]Khi thực hiện các lệnh với macro thì không thể undo trong Excel được. Do đó em muốn biết có cách nào thay đổi được chuyện này không?
[*]Ý tưởng của em là can thiệp trực tiếp vào danh sách dòng lệnh thực hiện của Excel. Không biết ý tưởng này của em có thể trở thành sự thật được không??
[/list]
[/size][/font]
undo trong Excel được:
Hình như I có đọc trong Obj Browser excel 2003 có proper hay method.. về undo macro(VBA) và 1 excel soft (đọc được code) tạo được lệnh undo trên các module của mình đã tạo ra .I đã install thử vào máy của mình.
can thiệp trực tiếp vào danh sách dòng lệnh thực hiện của Excel:
Trong MPV có bàn về việc này, trước hết phải link tới Active Exten.. gì đó và thực hiện được việc chép, xoá, hiệu chỉnh module code.I đã thử được nhg bị tắt nếu VBA được protect bằng passwork
 
W

workman

Guest
22/7/05
372
2
0
53
Ho Chi Minh
OverAC nói:
Thôi thế thì em lại gọi là bác vậy.
Ý tưởng về undo của em trong việc thực hiện Macro ở bước đơn giản như sau:
- Lưu lại danh sách dòng lệnh thực hiện của undo
- Lưu lại tình trạng hiện thời của file
- Chèn thêm vào danh sách dòng lệnh thực hiện của undo lệnh thực hiện Macro tên...
Khi thực hiện lệnh undo đến lệnh thực hiện macro thì mở lại load lại file cũ (đã lưu ở trên).
- Load lại danh sách các lệnh thực hiện đã lưu
Tôi thấy phương pháp lưu lại file là hay nhất, nhất là trong trường hợp macro của bạn xử lý hàng "tấn" công việc. Chỉ có nhược điểm là nếu gặp phải file lớn quá thì bạn ngồi ... "gãi râu" đợi mỏi mòn.
 
T

Tran Chau

Guest
23/11/04
149
0
0
66
TP Ho Chi Minh
undo macro

1/-Sub RecordMacro([BasicCode], [XlmCode])
Member of Excel.Application
2/-Nếu I nhớ khg nhầm thì trong Excel soft đã nói, tác giả dùng Classe Mod, và 1/- để tạo undo
 
T

Tran Chau

Guest
23/11/04
149
0
0
66
TP Ho Chi Minh
August 29, 2005
Generic Undo routine for VBA
Filed under: General VBA Advanced MVP Downloads VBA Classes Collections— jkpieterse @ 3:26 am
As an excercise to get to grips with class modules I decided to try and write a generic routing one can plug into a project, to create an undo stack of actions performed by one's macro. Of course I also added the code to do the actual undo.

Try this file and please send me your comments (or write them here)!

If I find this file is getting good enough, I'll publish an article on my site to explain how things work.
 
T

Tran Chau

Guest
23/11/04
149
0
0
66
TP Ho Chi Minh
xem thêm về undo bài viết của j-walk "Undoing a VBA Subroutine" tại:Excel Developer Tip Undoing a VBA Subroutine.htm
và:
Other examples of Undo
If you've purchased the source code to Power Utility Pak, you can examine these utilities for other, more complex, examples of using undo.
 
W

workman

Guest
22/7/05
372
2
0
53
Ho Chi Minh
Tran Chau nói:
xem thêm về undo bài viết của j-walk "Undoing a VBA Subroutine" tại:Excel Developer Tip Undoing a VBA Subroutine.htm
và:
Other examples of Undo
If you've purchased the source code to Power Utility Pak, you can examine these utilities for other, more complex, examples of using undo.
Tôi thử rồi , thấy hay lắm. Chủ yếu tác giả dùng lệnh Undo có sẵn của Windows.

Tôi chưa thử áp dụng với những chương trình phức tạp hơn như gán giá trị, copy worksheet. Bác Tran Chau nếu đã làm rồi thì cho chúng tôi biết thêm kinh nghiệm với
 

Xem nhiều