Cách dừng một macro đang chạy

Liên hệ QC

PDAphone

Thành viên mới
Tham gia
7/6/07
Bài viết
1
Được thích
0
Xin cho chỉ em:
- Cách dừng một macro đang chạy trên excel bằng cách nhấn 1 phím và chạy tiếp bằng cách nhấn 1 phím.
- Xoá clipboard sau khi paste

((Các bài viết này em đã từng đọc trên diễn đàn rồi, nhưng hiện nay em tìm lại thì không thấy nữa))

Xin cảm ơn!
 
Bạn có thể dừng 1 Macro đang chạy bằng tổ hợp phím Ctrl_Break

Xoá ClipBoard cũng có nhiều cách.
Ctrl_C một cái gì đó rỗng
Hoặc chọn menu Edit / Office Clipboard rồi Clear All...

TDN
 
Upvote 0
Vấn đề tương tự :

Minh đã viết 1 Add-in Mỏ Tệp và trong tệp đó có 1 số macro sẽ chạy khi mình chon yes (Có 1 msgbox hoi ) mình muốn viết lậnhh tại Addin sao để không hiện msgbox hoặc hiện và chọn No luôn

Nếu bạn nào biết giúp mình nhé hoặc co ví dụ tương tự up lên mình nghiên cứu
cùng chia sẻ

Cảm ơn !
 
Upvote 0
Vấn đề tương tự :

Minh đã viết 1 Add-in Mỏ Tệp và trong tệp đó có 1 số macro sẽ chạy khi mình chon yes (Có 1 msgbox hoi ) mình muốn viết lậnhh tại Addin sao để không hiện msgbox hoặc hiện và chọn No luôn
Cảm ơn !
Mình nghĩ chỉ có cách chỉnh lại codes trong trong tập tin được mở. Ví dụ khi open nó sẽ kiểm tra 1 biến Public, nếu True thì hiện MSGBOX ngược lại thì không hiện. Khi ấy trong tập tin Addin, bạn sẽ chỉ định nó TRUE hay FASLE thì tùy.

TDN
 
Upvote 0
cũnnngg khó !

Mình đã thử nhiều cách mà ko đc
Trong báo cáo thì lậnhh này nằm trong Thỉswokkbookk nên ko biết làm sao nếu nó viết trong module thì mình đã thay khi mở còn 1 giải pháp là xóa hết code trong Thisworkbook thôi bạn có biết lậnh xóa thì chỉ mình với mình đang bí ở đây

Code Thisworkbook :
Private Sub Workbook_Open()
Dim returnValue As Integer
Dim i As Integer
Dim cbActives As ComboBox
Dim cbComplete As ComboBox
Dim cbInactives As ComboBox

i = 1
Set cbActives = SheetActives.cbActives
Set cbComplete = SheetComplete.cbComplete
Set cbInactives = SheetInactives.cbInactives
cbActives.Clear
cbComplete.Clear
cbInactives.Clear
While SheetReportList.Cells(i, 1).Value <> ""
cbActives.AddItem SheetReportList.Cells(i, 1).Value
cbComplete.AddItem SheetReportList.Cells(i, 1).Value
cbInactives.AddItem SheetReportList.Cells(i, 1).Value
i = i + 1
Wend
cbActives.listIndex = 0
cbInactives.listIndex = 1
cbComplete.listIndex = 2

If SheetInit.Cells(2, 1).Value = "INIT" Then
stringToNumbersKeyDataIndex
returnValue = MsgBox(SheetLiterals.Cells(13, 2).Value, vbYesNo + vbQuestion)
If returnValue = vbYes Then
createReports
End If
SheetInit.Cells(2, 1).Value = ""
End If


toActives
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim returnValue As Integer
If SheetInit.Cells(2, 1).Value = "INIT" Then
Exit Sub
End If
returnValue = MsgBox(SheetLiterals.Cells(14, 2).Value, vbYesNoCancel + vbQuestion)
Select Case returnValue
Case vbYes
clearReports
Cancel = False
Case vbNo
Cancel = False
Case vbCancel
Cancel = True
End Select
On Error Resume Next
ThisWorkbook.Save
End Sub

Xóa được hết luôn càng tốt bạn biết giúp mình nhé ! hoặc có ví dụ nào tương tự thì mình sẽ ngiên cứu

Cảm ơn
 
Upvote 0
Bạn tham khảo ví dụ sau dùng để xoá dòng thứ 4 (trong Module2) và thay thế dòng lệnh thứ 2 (trong Module2) bằng dòng lệnh Dim MyNumber As Integer
Mã:
Sub ReplaceCode()
    Dim MyCodeMod
    Set MyCodeMod = ActiveWorkbook.VBProject.VBComponents("Module2").codemodule
    MyCodeMod.Deletelines 4  'Xoá dòng 4
    MyCodeMod.Replaceline 2, "Dim MyNumber As Integer"   ' Thay đổi dòng lệnh thứ 2
End Sub
Lưu ý là trong Excel, bạn mở Menu Tools / Macro / Security / Trusted Publishers và đánh dấu chọn cả 2 checkbox ... OK. Công việc này chỉ thực hiện 1 lần

TDN
 
Upvote 0
À, nếu bạn muốn xóa code trong Thisworkbook thì nằm ở trang này!
 
Lần chỉnh sửa cuối:
Upvote 0
Hình như bạn ấy muốn xóa code trong Thisworkbook mà phải không bác tedaynui?
Vậy bác có cách nào thay đổi code trong Thisworkbook không?
Những đoạn code sau mình tham khảo trên trang Web của anh Levanduyet


Mã:
'* Xoa Module
Sub DeleteVBComponent(ByVal wb As Workbook, ByVal CompName As String)
   ' Xoa VbComponent ten CompName tu wb
   Application.DisplayAlerts = False
   On Error Resume Next  ' Neu co loi thi lam tiep cau lenh ke tiep
   wb.VBProject.VBComponents.Remove wb.VBProject.VBComponents(CompName)  ' Xoa component
   On Error GoTo 0
   Application.DisplayAlerts = True
End Sub

'* Xoa Module co ten la "TEST"
Sub Del_VbComponent()
    DeleteVBComponent ActiveWorkbook, "TEST"
End Sub
Mã:
'* Them Module
Sub InsertVBComponent(ByVal wb As Workbook, ByVal CompFileName As String)
   ' Them CompFileName vao nhu la mot new component trong wb
   If Dir(CompFileName) <> "" Then  ' source file ton tai
      On Error Resume Next  ' Neu co loi thi thi hanh lenh tiep theo, i.e neu project duoc bao ve
      wb.VBProject.VBComponents.Import CompFileName  ' inserts component from file
      On Error GoTo 0
   End If
   Set wb = Nothing
End Sub

'* Them Module co ten la "TEST" co trong thu muc chua workbook
Sub Insert_VbComponent()
    InsertVBComponent ActiveWorkbook, ActiveWorkbook.Path & "\Test.bas"
End Sub
Mình đã Test và chạy rất tốt

TDN
 
Upvote 0
Bạn thử dùng đoạn code sau đây:
Mã:
Sub DeleteCodeThisWorkbook()
Disable_Macro
Application.Workbooks.Open ("Test.xls")
Dim WB As Workbook
    Set WB = ActiveWorkbook
    With WB.VBProject.VBComponents(1).CodeModule
        .DeleteLines 1, .CountOfLines
    End With
Enable_Macro
End Sub
-------------------------
Sub Disable_Macro()
Application.ScreenUpdating = False
    SendKeys "%{T}{M}{S}{S}"
    SendKeys "%{H}"
    SendKeys "^{Enter}"
Application.ScreenUpdating = True
End Sub
--------------------------
Sub Enable_Macro()
Application.ScreenUpdating = False
    SendKeys "%{T}{M}{S}{S}"
    SendKeys "%{L}"
    SendKeys "^{Enter}"
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Hiện nay để cài dự toán XD ứng dụng trong Office 2003 thì phải Tools >chọn Macro-> Securily->Securily level-> đánh dấu tích vào: Low (not recommended)...
Vậy để cài dự toán XD ứng dụng trong Office 2007 tôi phải vào đâu để làm để làm được như Office 2003.
Rất mong các bạn chỉ giáo cho.
Trân trọng cảm ơn!
 
Upvote 0
Mọi người cho mình hỏi trog Excel 2003 thì có cách nào đó để 1 File mình luôn chấp nhận Enable Macro ko?
Tức là khi khởi động File này lên thì xuất hiện bản thông báo Security Warning. Thanks
 
Upvote 0
Giúp kiểm tra Code giúp mình nhé !

Mình đã làm xong như dự định nhưng chỉ chay lần thứ 3 la Excel Báo lỗi và restar lại

Kiểm tra giúp mình nhé xem Code của mình lỗi chỗ nào nhé , Sửa giúp mình nhé
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom