Không biết HYen có hiểu ý của bác Kelvin không? Vì anh Kelvin đang bàn về Macro4 mà.HYen đã viết:Vô menu Insert -> Name -> Define ; Trong ngăn Names in Workbook ta nhập : GiaiPhapExcel; Trong ngăn Refers to: ta nhập chuỗi: "Khai trương ngày 02 tháng 07 năm 2006." & Add! Sau khi OK trở về bảng tính ta tìm vùng trống & nhập =GiaiPhapExcel & Enter xem việc gì sẽ đến đã đến!
Dùng bình thường thì em không biết, chứ dùng VBA để hiển thị lại thì được ạ :Gửi các bạn xem thử 1 cách gọi SheetMacro chạy, từ 1 Workbbook khác, rồi close Source macro4 lại
Trong wb:ReturnWbName_M4.xls có 1 SheetMacro4 ẩn, làm sao thấy được đây, đố các bạn ?
Sub UnhideSheet()
On Error Resume Next
Application.ScreenUpdating = False
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Sheets
If Not Sh.Visible = xlSheetVisible Then Sh.Visible = xlSheetVisible
Next
Application.ScreenUpdating = True
End Sub
Bạn kelvin có thể chỉ cho cách phát hiện sheet ẩn này ko? Tất nhiên là ngoài cách dùng VBA như Bắp vừa làm ở trên!uhm,cũng hay đấy.Vấn dề ở chỗ mình thấy sao trong VBA Editor, không thấy có liệt kê MacroSheet trong cửa sổ Project Explorer -> nếu không nói có Sheet ẩn trước, ít ai nghĩ ra là nó nằm ở đâu
Sh =GET.WORKBOOK(1)
Dùng bình thường thì em không biết, chứ dùng VBA để hiển thị lại thì được ạ :
Thân!PHP:Sub UnhideSheet() On Error Resume Next Application.ScreenUpdating = False Dim Sh As Worksheet For Each Sh In ActiveWorkbook.Sheets If Not Sh.Visible = xlSheetVisible Then Sh.Visible = xlSheetVisible Next Application.ScreenUpdating = True End Sub
ActiveWorkbook.Sheets
ActiveWorkbook.Worksheets
=GET.WORKBOOK(1)Oh... ho... sao mình quên các hàm macro 4 nhỉ?
Tôi dùng:
cũng phát hiện ra dc có 1 sheet đang ẩn đấy!Mã:Sh =GET.WORKBOOK(1)
Bác kelvin rất giỏi về macro4, không hiểu bác có biết cơ chế lây virus macro4 không ạ?
Làm sao cho sheet ẩn hiện lên thì tôi không biết nhưng ít ra với code đơn giản này tôi có thể phát hiện thực chất trong Workbook có tồn tại sheet ẩn hay không!=GET.WORKBOOK(1)
=RETURN()
The names of all sheets in the workbook, as a horizontal array of text values.
Trả về dãy ngang chứa tên của tất cả các bảng tính trong Workbook
Viết code làm sao để nó hiện tất cả các tên đây?(bằng macro4).Viết như trên thì nó chỉ trả vè có 1 Sheet
Sh =GET.WORKBOOK(1)
Cám ơn bạn, mình chỉ biết sơ qua thôi,và cũng đúng như Tuân nói,công nghệ lập trình ngày càng mạnh và dể dùng hơn, giờ thì .net, web 2,3.0,,mobile chứ ai mà đi lui lạiBác kelvin rất giỏi về macro4, không hiểu bác có biết cơ chế lây virus macro4 không ạ?
Thế nếu tôi chỉnh Level = 2 trước, sau đó khóa key Security lại thì làm sao mà phần mềm của bạn có thể Import thông tin vào đây?để MS Excel 2003 luôn để securiry ở Low (ng dùng không chỉnh sửa lại được) bạn thử import vào reg dòng sau: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Excel\Security]
"Level"=dword:00000001
Thế nếu tôi chỉnh Level = 2 trước, sau đó khóa key Security lại thì làm sao mà phần mềm của bạn có thể Import thông tin vào đây?
kelvin đã viết:để MS Excel 2003 luôn để securiry ở Low (ng dùng không chỉnh sửa lại được) bạn thử import vào reg dòng sau: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\ Excel\Security]
"Level"=dword:00000001
Ah... Cái này chỉ khóa 1 key thôi, không khóa nguyên Registry!Bác đọc kỹ :
Ở đây chỉ bàn đến một số các biện pháp chứ không phải là giải quyết mọi vấn đề của của Hệ điều hành.
Vì nói về bảo mật thì phân quyền, khóa service, khóa registry, khóa Hệ điều hành, phần mềm của hãng thứ 3 . . . ngay cả excel cũng chẳng mở được (thậm chí Office cũng không cài đặt được) chứ nói gì đến chuyện sử dụng excel phải không bác ???
Thân!
Trong VBA ta có thể ghi, thay đổi các key của Reg,.Mình khg dùng cái nầy nên quên rồi, bạn chịu khó google vậy.... Nếu người ta khóa key này thì Excel có giãi pháp nào khắc phục không?
Đồng ý! Nhưng để mở mở key đã bị khóa thì tôi thật sự không biết làm cách nào!Trong VBA ta có thể ghi, thay đổi các key của Reg,.Mình khg dùng cái nầy nên quên rồi, bạn chịu khó google vậy
Khóa, không cho mở reg thì mình có hiểu, còn "key đã bị khóa " là sao, bạn nói rõ hơn 1 chút dược khg?key đã bị khóa Có ai biết vụ này không nhỉ?
Mở Registry lên, Click phải vào 1 key nào đó, chọn Permissions... Ở đây bạn có thể phân quyền cho ai làm gì và cấm ai làm gì trên key của bạn!Khóa, không cho mở reg thì mình có hiểu, còn "key đã bị khóa " là sao, bạn nói rõ hơn 1 chút dược khg?
Mấy cái nầy thì mình không biết rồi, mình chỉ biết với Excel hiện nay đã tích hợp VB6 vào VBA, do đó cái gì VB6 làm được thì Excel VBA sẽ làm đượcMở Registry lên, Click phải vào 1 key nào đó,
Sub ShMacro()
Dim Sh As Worksheet
Dim Temp As String, i As Byte
For Each Sh In ActiveWorkbook.Sheets
If CheckShMacro(Sh.Name) = True Then
Temp = Temp & Chr(13) & " - " & Sh.Name
Sh.Visible = xlSheetVisible
i = i + 1
End If
Next
If Temp = "" Then
MsgBox "Xin Chuc Mung !!!" & Chr(13) & "Khong Co Macro Sheet 4 nao!!!", vbInformation, "MrOkebab"
Else
MsgBox "Co " & i & " Macro Sheet : " & Chr(13) & Temp, vbInformation, "MrOkebab"
End If
End Sub
Function CheckShMacro(ShStr As String) As Boolean
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Worksheets
If Sh.Name = ShStr Then
Exit Function
End If
Next
CheckShMacro = True
End Function
Các bác cho hỏi :
Các con Virus Macro đều phải viết trong Macro Sheet hay là trên Sheet thường cũng được ???
Vì em muốn tạo ra một Sub để phát hiện Sheet nguồn của Virus Macro rồi xóa nó đi.
Em vẫn phải làm cách chuối như sau ...
Thân!
Option Explicit
'http://www.eggheadcafe.com/forumarchives/Excelprogramming/Sep2005/post24278050.asp
Sub AAA()
Dim s As Object
For Each s In ThisWorkbook.Sheets
s.Visible = True
Next s
End Sub
Private Sub ShowExcel4MacroSheets()
Dim i As Long
For i = 1 To Application.Excel4MacroSheets.Count
Application.Excel4MacroSheets(i).Visible = True
Next i
For i = 1 To Application.Excel4IntlMacroSheets.Count
Application.Excel4IntlMacroSheets(i).Visible = True
Next i
End Sub