làm sao để lặp lại 1 hành động vừa mới làm trong excel

  • Thread starter blackname
  • Ngày gửi
B

blackname

Guest
30/10/06
7
0
0
45
TPCHM
mình đinh viết 1 macro dùng để lặp lại 1 hành động vừa mới làm hay undo lại hánh động truoc, xin hỏi phải dùng hàm gì và cách viết làm sao...àh nhân tiện cho mình hỏi luôn nếu xuất ra file có duoi *.xla thì chỉ áp dụng cho function còn đối với sub thì không thực thi duoc phải không :leapfroga
 
Sửa lần cuối:
Khóa học Quản trị dòng tiền
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
11
18
44
Nha Trang
blackname nói:
mình đinh viết 1 macro dùng để lặp lại 1 hành động vừa mới làm hay undo lại hánh động truoc, xin hỏi phải dùng hàm gì và cách viết làm sao...
Cái này thì mời bạn bàn luận thêm ở đây: http://www.webketoan.com/forum/showthread.php?t=10420
blackname nói:
àh nhân tiện cho mình hỏi luôn nếu xuất ra file có duoi *.xla thì chỉ áp dụng cho function còn đối với sub thì không thực thi duoc phải không :leapfroga
Đối với sub vẫn thực thi được nhưng phải gọi nó bằng những cách thích hợp: Phím tắt, chạy trực tiếp trong đoạn lệnh, đưa ra ngoài bằng các nút lệnh trên bảng tính, trên thanh công cụ, trên menu...
 
B

blackname

Guest
30/10/06
7
0
0
45
TPCHM
minh co tải 1 file NameManager.xla trong diễn đàn, và khi chay thì namemanager xuất hiện tại menu tool , mình cũng đã xuất macro của mình ra dưới dạng excel add-in (vd:andong.xla) với tác dụng là ẩn dòng hiện hữu khi ta bấm ctrl + h, bình thường khi save file duoi dang andong.xls, chỉ cần vào tool -> macro -> run là sẽ thấy tên sub mình muốn chạy. Bây giờ mình muốn xuất ra dạng *.xla để chạy trên mọi file excel giống như NameManager.xla nhưng khi mình xuất file ra rồi, lúc nhấp đúp vào chạy thì excel có hỏi enable hay disable macro mình chọn enable nhưng khi khi vào tool -> macro -> run thì không thấy sub nào hiện lên để chạy cả,phải vào visual basic editor chọn module andong rồi bấm nút play (hình tam giác) trên thạnh công cụ của visual basic editor thì khi đó bấm ctrl + h mới ẩn được dòng hiện hữu... xin các bạn chỉ giáo thêm về vấn đề này
 
Sửa lần cuối:
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
11
18
44
Nha Trang
Các lệnh trong file .xla không hiển thị trong danh sách các macro list nhưng bạn vẫn có thể dùng những cách sau để cho nó chạy:
1. Điền tên nó vào ô Macro Name trong hộp thoại Macros: tool -> macro -> run.
Nó không xuất hiện nhưng tên điền vào đúng thì tự động nút Run chuyển sang Enable và bạn có thể nhấn vào nút đó được

2. Tạo một nút lệnh trên thanh công cụ liên kết vào Macro của bạn trong file .xla một lần nữa bạn, lúc bạn assign macro cho nút lệnh nó sẽ hiện ra hộp thoại như trên và cũng như trên bạn phải gõ đúng tên Macro rồi nhấn nút OK.
- Click phải trên thanh công cụ chọn Customize/(hoặc)menu View --> toolbars --> Customize/ menu Tools --> Customize
- Chọn Tab Command
- Chọn Macro trong list của ô Categories
- Chọn Custom Button trong list của ô Commands

3. Dùng các câu lệnh gán vào sự kiện mở file .xla để tạo ra nút lệnh trên menu.... (giống như file namemanager.xla) Chuyện này hơi khó hướng dẫn. Bạn thử copy macro của file namemanager.xla để thực hiện. Có gì thắc mắc chúng tôi sẽ cố gắng giúp đở bạn.
 
B

blackname

Guest
30/10/06
7
0
0
45
TPCHM
vậy có đoạn code nào khi ta mở file *.xla thì macro tự động chạy không, tại vì đoạn lệnh tự động tạo ra menu phức tạp quá... Mong được hướng dẫn
 
ruadangyeu

ruadangyeu

Guest
30/9/06
143
1
0
Hanoi
my.opera.com
Không biết mình có nông cạn quá không
Bạn chỉ cần dùng một thủ tục kiểu như
Private Sub Workbook_Open()
//Chạy thủ tục tạo menu
End Sub
là ok thôi mà

Các đại ca đừng chê cười
 
B

blackname

Guest
30/10/06
7
0
0
45
TPCHM
nó vẫn không tự động tạo bạn ruadangyeu oi, không biết các bạn còn cách nào nữa không,
àh mình có viết 1 đoạn coade như sau:
Sub delete()
Dim cell As Range
For Each cell In Selection
If (cell.Value = 0) Then
cell.EntireRow.delete
End If
Next
End Sub

nhưng nó bị lỗi ở 1 chỗ ví dụ như : có 4 ô số 0 thì khi xóa thì chỉ xóa 2 ô, 6 ô thì xóa 3 ô, nói chung là chỉ xóa đi một nữa.. bạn nào biết xin chỉ cách khác phục lỗi trên
 
hieu1563

hieu1563

Guest
blackname nói:
nó vẫn không tự động tạo bạn ruadangyeu oi, không biết các bạn còn cách nào nữa không,
àh mình có viết 1 đoạn coade như sau:
Sub delete()
Dim cell As Range
For Each cell In Selection
If (cell.Value = 0) Then
cell.EntireRow.delete
End If
Next
End Sub

nhưng nó bị lỗi ở 1 chỗ ví dụ như : có 4 ô số 0 thì khi xóa thì chỉ xóa 2 ô, 6 ô thì xóa 3 ô, nói chung là chỉ xóa đi một nữa.. bạn nào biết xin chỉ cách khác phục lỗi trên


Vẫn chạy bình thường mà. Bạn gửi file lên đi.
 
B

blackname

Guest
30/10/06
7
0
0
45
TPCHM
nhưng neu là trường hợp 4 ô số 0 liên tiếp theo hàng dọc, thì no 1 chỉ xóa được 2 ô
 
ruadangyeu

ruadangyeu

Guest
30/9/06
143
1
0
Hanoi
my.opera.com
blackname nói:
nó vẫn không tự động tạo bạn ruadangyeu oi, không biết các bạn còn cách nào nữa không,
àh mình có viết 1 đoạn coade như sau:
Sub delete()
Dim cell As Range
For Each cell In Selection
If (cell.Value = 0) Then
cell.EntireRow.delete
End If
Next
End Sub

nhưng nó bị lỗi ở 1 chỗ ví dụ như : có 4 ô số 0 thì khi xóa thì chỉ xóa 2 ô, 6 ô thì xóa 3 ô, nói chung là chỉ xóa đi một nữa.. bạn nào biết xin chỉ cách khác phục lỗi trên

Không được có lẽ do bạn chưa đặt nó vào đúng vị trí thôi
Bạn phải đặt nó trong this workbook của project

Còn về đoạn code trên thì đúng là có vấn đề
Khi thực hiện xóa dòng xong thì dòng kế tiếp sẽ trở thành dòng hiện thời và khi câu lệnh for each được thực hiện nó lại nhảy tiếp một dòng nữa và như vậy sẽ có một dòng bị bỏ sót nếu có 2 dòng kế tiếp nhau thỏa mãn
nói đến đây chắc bạn hiểu phải sửa code thế nào rồi chứ
 
B

blackname

Guest
30/10/06
7
0
0
45
TPCHM
ve phần menu thì mình đã làm được rồi nhưng phần còn lại vẫn chưa giải quyết được mong các bạn chỉ giúp
 
aThuan

aThuan

Cao cấp
27/9/06
347
5
18
Tp.HCM
Các bạn ơi!

phím F4 trong excel cho lặp lại một hành động vừa làm:
office 2000: replace xong, nhấn F4 nó vẫn thực hiện hành động replace này. nhưng
office 2003: thì không được, đây có phải là 01 bước cải lùi của Microsoft.
Phím nóng nào để excel của office 2003 thực hiện lại hành động replace vừa mới làm trước đó???

Mong nhận được chỉ giáo.
 
Sửa lần cuối:
H

Hoangvn79

Cao cấp
26/6/06
629
0
0
HN
Bạn nhấn Ctrl + Z là tạm ổn.....
 

Xem nhiều