Macro trong EXcel

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi thonon, 20 Tháng sáu 2005.

17,300 lượt xem

  1. thonon

    thonon Thành viên sơ cấp

    Bài viết:
    28
    Đã được thích:
    0
    Nơi ở:
    hanoi
    Minh co 1 file lam ke toan *.Xla, khi mo file khong thay sheet nao, vao tool\marco\Visual basic khong thay co sheet nao ca, chi co 2 modul khong cai Password, xoa thu hai modul do,khi chay excelrepair 4.03 demo de sua file do thi xuat hien 9 sheet chua code. Minh muon hoi moi nguoi file XLA do da su dung cach nao de che dau cac sheet do vay.
     
    Last edited: 20 Tháng sáu 2005
    #1
  2. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Chuyện này có vẻ hay đấy nhỉ. Bạn có thể vui lòng gởi file đó cho tôi được không?

    Lần sau bạn nhơ gỏ tiếng Việt có dấu nhé. Kô thì bài của bạn có thể được đăng ký tạm trú ở thùng rác đấy.
     
    Last edited by a moderator: 18 Tháng mười hai 2009
    #2
  3. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To: thonon,
    Để che dấu các sheet có các cấp sau:
    _Format/Sheet/Hide, với các này bạn có thể làm ngược lại. Format/Sheet/Unhide
    _Với cách vào VBE và vào của sổ Properties, chọn thuộc tính Visible với giá trị 2 (veryhidden thì phải !) thì bạn chỉ có thể Unhide bằng đọan code của VBA.
    _Bạn chú ý cách mở VBE của bạn, cách sắp xếp các cửa sổ properties...
    Chúc bạn khỏe.
    Lê Văn Duyệt
     
    #3
  4. ForestC

    ForestC Thành viên sơ cấp

    Bài viết:
    377
    Đã được thích:
    1
    Nơi ở:
    E'rywhere
    Này anh Duyệt, câu trả lời của anh là không thoả đáng, chỉ là sự tổng hợp lại các kiến thức đã có trên diễn đàn thôi nhé. Ở đây theo ý em hiểu là họ vào cửa sổ VBA mà vẫn không thấy sheet nào, chỉ cho đến khi họ dùng công cụ hỗ trợ của bên thứ 3 họ mới nhìn thấy. Có nhiều khả năng cái cách ẩn sheet này là dùng mã VBA, nếu ThoNon đưa file lên đây thì chúng tôi mới có thể dễ dàng giải đáp thắc mắc của bạn hơn. Cũng là một vấn đề thú vị phải không?

    P/S: dạo này anh không fone-call 2 MaiKa nữa à? bro LVD?
     
    #4
  5. thonon

    thonon Thành viên sơ cấp

    Bài viết:
    28
    Đã được thích:
    0
    Nơi ở:
    hanoi
    Dowload file XLA

    add: checkexcel@yahoo.com
    pass: 29l52455

    Nếu có kết quả xin hãy nhắn lại ngay. Cảm ơn trước
     
    #5
  6. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To: thonon,
    Trong file add-in này có 2 form và 2 module. Không có gì đặc biệt cả? Không hiểu bạn có "nghiên cứu" kỹ không?
    Add-in này nhằm giúp cho việc "thẩm định dự án và quyết tóan các công trình xây dựng cơ bản"...
    Địa chỉ liên hệ: Nguyễn Tiến Khoa 0912107487
    Nguyễn Quốc Chinh 0912370337
    Trần Đức Bá Cao 0912171785
    Có 2 Module tên là: Module1 và Program. Có 2 form: Gioithieu và TTfrm.
    Mục đích của bạn là gì? Bạn muốn xem mã...xin liên hệ với các Tác Giả trên! Bạn không biết sử dụng ra sao! Xin liên hệ với các Tác Giả trên!...Hay bạn cần tìm hiểu các vấn đề khác?

    Thân,
    Lê Văn Duyệt
     
    #6
  7. thonon

    thonon Thành viên sơ cấp

    Bài viết:
    28
    Đã được thích:
    0
    Nơi ở:
    hanoi
    tool for you

    Nếu như vậy thì không cần đưa ra câu hỏi để làm gì.Bạn hãy dowload tool ExcelFix 4.23 demo tại: http://www.cimaware.com/main/download/index.php và fix file đấy. Chú ý trước khi click vào Recover phải cài đặt lại cấu hình cho excelrepair: Vào Options-đánh dấu vào ShowFormulas thì mới hiện lên Code được.
     
    #7
  8. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To: thonon,
    Chắc có lẻ nếu bạn đọc thử đọan code dưới đây thì bạn có câu trả lời, hay ít ra là một phần của câu trả lời.
    Thân,
    Lê Văn Duyệt.
    To:Tranchau,
    Chắc khi Anh đọc đọan code dưới đây, Anh có thể tham gia một vài ý kiến vào diễn đàn Anh hả?
    Chúc Anh khỏe.

    '------------------------------------------------------------------------------
    Sub Hien_DMTHEP()
    On Error GoTo KetthucSUB
    If ExecuteExcel4Macro("WINDOWS()") = "" Then
    Exit Sub
    End If
    If Val(Application.Version) < 8 Then

    On Error GoTo InputErrHandler
    Dim lbMenus As ListBox
    Dim i, VLROW, SDONG, SCOT As Integer
    ' Dim KCROW, KCROW1 As Double

    InputErrHandler10:

    ExecuteExcel4Macro ("ECHO(FALSE)")
    If ExecuteExcel4Macro("GET.NOTE(""R1C1"")") = "Du toan" Then

    SCOT = ExecuteExcel4Macro("COLUMN(ACTIVE.CELL())")
    If SCOT = 5 Then
    SDONG = ExecuteExcel4Macro("ROW(ACTIVE.CELL())")
    ' Range("E" & SDONG).Select
    ' KCROW1 = ExecuteExcel4Macro("GET.CELL(45)")
    ' KCROW = 0
    ' For i = 1 To SDONG
    ' Range("E" & i).Select
    ' KCROW = KCROW + ExecuteExcel4Macro("GET.CELL(17)")
    ' Next

    ActiveSheet.ListBoxes.Add(0, 0, 120, 110).Select
    With Selection
    .PrintObject = False
    .Display3DShading = True
    End With

    Selection.Name = "List Box"
    Selection.OnAction = "An_DMTHEP"

    If Val(Application.Version) > 7 Then
    ActiveWindow.ScrollRow = 1
    Range("A1").Select
    Range("A7").Select
    ActiveWindow.FreezePanes = True
    Else
    Range("A1").Select
    Range("A7").Select
    ActiveWindow.FreezePanes = True
    End If

    ExecuteExcel4Macro ("ECHO(FALSE)")
    ExecuteExcel4Macro ("SELECT(""RC5"")")
    Set lbMenus = ActiveSheet.ListBoxes("list Box")
    lbMenus.RemoveAllItems
    Sheets("Config").Select
    Range("G1").Select
    VLROW = 1
    While ExecuteExcel4Macro("GET.FORMULA(""R" & VLROW & "C7"")") <> ""
    lbMenus.AddItem ExecuteExcel4Macro("GET.FORMULA(""R" & VLROW & "C7"")")
    VLROW = VLROW + 1
    Wend

    Sheets("Du toan").Select
    ' KCROW1 = (KCROW - KCROW1)
    ' i = 0
    ' While KCROW1 >= -5
    ' ExecuteExcel4Macro ("SELECT(""R" & i & "C" & SCOT & """)")
    ' KCROW1 = KCROW1 - ExecuteExcel4Macro("GET.CELL(17)")
    ' i = i + 1
    ' Wend
    ' i = i + 1
    ' ActiveWindow.ScrollRow = i
    Range("E" & SDONG).Select
    End If
    Exit Sub
    End If

    Else
    On Error GoTo InputErrHandler10

    ExecuteExcel4Macro ("ECHO(FALSE)")

    SCOT = ExecuteExcel4Macro("COLUMN(ACTIVE.CELL())")
    SDONG = ExecuteExcel4Macro("ROW(ACTIVE.CELL())")

    ActiveSheet.Shapes("List Box").Select
    Selection.Delete

    ActiveWindow.ScrollRow = 1
    Range("A1").Select
    ActiveWindow.FreezePanes = False

    Range("E" & SDONG).Select

    End If
    Exit Sub
    InputErrHandler:
    Selection.Delete
    ActiveSheet.DrawingObjects("List Box").Select
    Selection.Delete
    Range("A7").Select
    ActiveWindow.FreezePanes = False
    Range("E" & SDONG).Select
    Exit Sub
    KetthucSUB:
    End Sub

    Function FAn_DMTHEP()
    Dim THUTUTHEP, SCOT, SDONG As Integer
    Dim lbMenus As ListBox
    SCOT = ExecuteExcel4Macro("COLUMN(ACTIVE.CELL())")
    SDONG = ExecuteExcel4Macro("ROW(ACTIVE.CELL())")

    Set lbMenus = ActiveSheet.ListBoxes("list Box")
    THUTUTHEP = lbMenus.Value
    ' If THUTUTHEP = 1 Then
    ' If THUTUTHEP = 1 Then
    ' THUTUTHEP = 0
    ' End If
    ' ActiveSheet.DrawingObjects("List Box").Select
    ' Selection.Delete
    ' Range("A7").Select
    ' ActiveWindow.FreezePanes = False
    ' End If
    ExecuteExcel4Macro ("SELECT(""R" & SDONG & "C" & SCOT & """)")
    FAn_DMTHEP = THUTUTHEP
    End Function
     
    #8
  9. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To:thonon,
    Xin lỗi bạn vì những trả lời vừa rồi! Thực sự tôi không tham khảo kỹ về các Excel 4.0 hay các macro của các phiên bản Excel trước. Đối với phiên bản Excel 4.0 này có những vấn đề, nếu muốn thì phải tìm hiểu rất là nhiều.
    Nhân đây tôi xin upload file help của Anh Tranchau lên đây để các bạn nếu muốn có thể tham khảo. (Anh Tranchau và tôi đã thử nhưng sao không thể upload lên thư viện được! Sau này upload lên được tôi sẽ xóa file này!)
    Thân,
    Lê Văn Duyệt
    (Sao tôi upload lên cũng không được!!!, cố gắng upload lại lên thư viện)
     
    #9
  10. Tuanktcdcn

    Tuanktcdcn Lão già ham vui

    Bài viết:
    548
    Đã được thích:
    50
    Nơi ở:
    Hà Nội
    File mà Thonon miêu tả thực chất là dùng WorksheetMacro4.0. Như có bài I đã nói người ta dùng kỹ thuật này là từ khi VBA chưa phát triển. Để viết mã, thay vì phải viết code trong các Module của VBA thì phải viết các hàm (gọi là Macro4.0) trên Sheet có đặc tính Macro4.0 (Trong môi trường EXCEL bạn gõ tổ hợp phím CTRL+F11), trong SheetM4.0 này người ta dùng các hàm trong bộ Macro4.0 có thể chạy và thực hiện được các chức năng gần như VBA.
    Các phiên bản từ EXCEL97 về trước để tạo SheetMacro4.0 vào Insert\Worksheet... bạn sẽ được chọn lựa SheetMacro4.0, nhưng từ EXCEL2000 trở về đây thì Microsoft hướng người dùng sang làm VBA vì tích tích hợp và ưu việt nổi bật. Tuy nhiên để bảo toàn giữa cũ và mới người ta vẫn giữ thuộc tính Sheetmacro4.0 nhưng phải bấm CTRL+F11.
    Những tiền bối dùng EXCEL từ khi I còn nhỏ đã làm như vậy và bây giờ họ đã chuyển viết ứng dụng trên VBA. Việc dùng Macro4.0 bây giờ chỉ để đối phó những vấn đề nhỏ hoặc để giải trí mà thôi.
     
    #10
  11. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To: Tuanktcdcn,
    Tôi hòan tòan đồng ý với ý kiến của bạn. Bây giờ, tôi thấy còn dùng .Net với Excel và làm được hầu như mọi chuyện. Những thắc mắc về những file dùng Macro 4.0, hay các kỹ thuật của nó theo tôi nếu ai muốn nghiên cứu kỹ thì nên tự tìm hiểu. Chúng ta nên tập trung vào những vấn đề khác.
    Thân,
    Lê Văn Duyệt
     
    #11
  12. Tran Chau

    Tran Chau Thành viên sơ cấp

    Bài viết:
    149
    Đã được thích:
    0
    Nơi ở:
    TP Ho Chi Minh
    http://r.office.microsoft.com/r/rli...D=XT010352321033&CTT=11&Origin=HP010475331033
    Excel 4.0 Macro Functions
    The Microsoft Excel 4.0 Macro Function Help file contains the reference information for all of the Excel 4.0 macro functions (XLM macros) available in Excel. To obtain this macro function Help file, you can download it from the Microsoft Office Online Web site.
    To Duyet
    I co gang up len thuvien.wkt 1 lần nửa, nhưng vẫn không được, bạn nao muôn tìm hiểu vui lòng theo link trên để down về xem
     
    #12
  13. Tran Chau

    Tran Chau Thành viên sơ cấp

    Bài viết:
    149
    Đã được thích:
    0
    Nơi ở:
    TP Ho Chi Minh
    duong link la trong help Excel các bạn có thể search trong help để có link gốc
     
    #13
  14. Tran Chau

    Tran Chau Thành viên sơ cấp

    Bài viết:
    149
    Đã được thích:
    0
    Nơi ở:
    TP Ho Chi Minh
    Nếu có bạn nào vãn còn thích đồ cổ, (Macro4) I xin giới thiệu vài cuốn sách đã dịch sang VN năm ...1995 (!):
    -Hướng dẫn sử dụng MS Excel Visual Basic For Application, V5 for Win của Reed Jacobson
    Trong sách nầy chủ yếu hướng dẫn cơ bản về lâp trình trên VBA, có nói sơ qua về cách gọi các Sub VBA từ Macro4 và ngược lại ..., các kiến thức về VBA các bạn vẫn có thể áp dụng cho đến Ver Excel 2003.Ban nào thấy hợp với cách dạy của Reed và “hiện đại” hơn thì .. đặt mua sách qua Amazone của Reed,tác giả có update VBA tới 2000,2002 gì đó.
    -Cẩm nang tra cứu Excel 4 $ 5: Hàm và Macro, KS Huỳnh tấn Dũng, xuất bản năm 1995.
    Đay là 1 cuốn sách tra cứu khà đồ sộ về Excel, hầu như tác giả đã dịch toàn bộ phần help về function, macro4, có thêm phần phụ lục khá lý thú: (1) Bài toán đổi số thành chữ bằng hàm, viết bằng macro4 (2) Một ví dụ dùng macro4 dể quản lý dữ liệu: tạo hộp thoại, menu, xây dựng 1 ch trình macro có cấu trúc, dùng vòng lặp, mail merge trong Excel...
    Trong phần help macro4 mà tôi đã đưa đường link, có 1 phần dich 95% các hàm macro4 sang VBA cũng đáng quan tâm.
    - Cuốn Inside MS Excel 5/95/97, đã dich sang tiếng Việt. Riêng cuốn nầy I thấy vẫn còn bán tại các hiệu sách lớn tại TP HCM.
     
    #14
  15. Tran Chau

    Tran Chau Thành viên sơ cấp

    Bài viết:
    149
    Đã được thích:
    0
    Nơi ở:
    TP Ho Chi Minh
    Cuối cùng ... I thấy nên như Duyet đã noi
     
    #15
  16. Tran Chau

    Tran Chau Thành viên sơ cấp

    Bài viết:
    149
    Đã được thích:
    0
    Nơi ở:
    TP Ho Chi Minh
    Bạn thử cài đặt Excel5, và dùng thử macro4: VBA.MAKE.ADDIN ; WORKBOOK.HIDE xem sao
    Ban có thể cung cấp link để có toàn bộ cài đặt chương trình nầy? Còn vài file đi theo nửa
     
    #16
  17. NgânGiang

    NgânGiang Cố lên! Cố lên...

    Bài viết:
    202
    Đã được thích:
    0
    Nơi ở:
    Trong Mây mù
    ...
    25/06/2005 06:53AM
    25/06/2005 06:56AM
    25/06/2005 02:29PM
    Tran Chau tự mâu thuẫn với chính mình rồi nhé.
    Mong rằng mỗi người có nhiều mâu thuẫn, giải quyết chưa xong cái này lại phát sinh thêm cái khác để giải quyết rồi phát triển.
     
    #17
  18. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To: NganGiang,
    Thực sự ra bạn không hiểu được...
    Thôi chắc tôi cũng không thể nào giải thích với bạn trên đây được!
    Xin bạn cứ việc chia sẻ cùng mình theo địa chỉ e-mail: levanduyet@pmail.vnn.vn
    Thân,
    Lê Văn Duyệt
     
    #18
  19. vinhtx77

    vinhtx77 Thành viên sơ cấp

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    ha noi
    Em cũng có file XLA bị mã hoá không thấy code, module, form đâu cả mà vẫn chạy tốt. Nhờ các cao thủ xem hộ em họ làm như thế nào mà được vậy? Cảm ơn nhiều!!!

    File đính kèm: MEGAUPLOAD - The leading online storage and file delivery service
     
    #19

Chia sẻ trang này