Công ty TNHH Đào tạo Tư vấn và Đầu tư AFTC
Trang 1/2 1 2 cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 11
  1. #1
    Tham gia ngày
    03 2008
    Bài gởi
    6
    Cảm ơn
    4
    Được cảm ơn 0 lần trong 0 bài viết

    Học tập viết code VBA trong excel

    Dear All,

    Minh đang tập viết macro cho Excel. Mong các bạn chỉ dẫn thên cho mình.

    VD: Mình có đoạn code sau:

    Sub Macro2()
    '
    ' Macro2 Macro
    '
    ' Keyboard Shortcut: Ctrl+q
    n = 0
    m = 0
    a = ActiveCell.Address
    Range(a).Select
    For n = 0 To 22
    Range("A2").Select
    ActiveCell.Offset(0, n).Copy
    ActiveCell.Offset(0, n).Select
    m = ActiveCell.Offset(-1, 0)
    If m = 1 Then
    Range(a).Select
    ActiveCell.Offset(0, n).PasteSpecial
    End If
    Next
    Range(a).Select
    End Sub

    Yêu cầu:
    - Mình muốn copy Công thứ từ 1 hàng cho trước đã format chuẩn.
    - Từ Bắt đầu từ o hiện hành ấn Ctrl - q sẽ copy từ dòng chuẩn xuống dòng hiện hành(dòng muốn copy)
    Ở đây dòng chuẩn là là dòng A2 (dòng A1 là dòng dùng để làm điều kiện để copy nếu = 1 thì copy, = 0thì không copy). Có tổng cộng 22 cột muốn copy.

    Đoạn code đã chạy ok. Tuy nhiên nhờ các bạn xem có cách viết nào tốt hơn không, để học hỏi và trao dồi thêm.

  2. #2
    Tham gia ngày
    08 2009
    Bài gởi
    856
    Cảm ơn
    3,969
    Được cảm ơn 1,571 lần trong 660 bài viết
    Có thể bạn gửi File lên cho dễ hình dung, chứ còn copy thì cần gì vòng lặp:

    PHP Code:
    Sub CopyCongThuc()
      If 
    ActiveCell.Row <= 2 Then Exit Sub
      
    If Sheet1.[A1] = 1 Then
        Sheet1
    .[A2:V2].Copy
        ActiveCell
    .PasteSpecial 2
      End 
    If
    End Sub 
    Tập tin đính kèm Tập tin đính kèm
    Không biết thì hỏi, muốn giỏi phải học.
    --------------------------------------

  3. #3
    Tham gia ngày
    06 2008
    Bài gởi
    23,743
    Cảm ơn
    13,606
    Được cảm ơn 42,251 lần trong 19,139 bài viết
    Trích Nguyên văn bởi khoaitd View Post
    Dear All,

    Minh đang tập viết macro cho Excel. Mong các bạn chỉ dẫn thên cho mình.

    VD: Mình có đoạn code sau:

    Sub Macro2()
    '
    ' Macro2 Macro
    '
    ' Keyboard Shortcut: Ctrl+q
    n = 0
    m = 0
    a = ActiveCell.Address
    Range(a).Select
    For n = 0 To 22
    Range("A2").Select
    ActiveCell.Offset(0, n).Copy
    ActiveCell.Offset(0, n).Select
    m = ActiveCell.Offset(-1, 0)
    If m = 1 Then
    Range(a).Select
    ActiveCell.Offset(0, n).PasteSpecial
    End If
    Next
    Range(a).Select
    End Sub

    Yêu cầu:
    - Mình muốn copy Công thứ từ 1 hàng cho trước đã format chuẩn.
    - Từ Bắt đầu từ o hiện hành ấn Ctrl - q sẽ copy từ dòng chuẩn xuống dòng hiện hành(dòng muốn copy)
    Ở đây dòng chuẩn là là dòng A2 (dòng A1 là dòng dùng để làm điều kiện để copy nếu = 1 thì copy, = 0thì không copy). Có tổng cộng 22 cột muốn copy.

    Đoạn code đã chạy ok. Tuy nhiên nhờ các bạn xem có cách viết nào tốt hơn không, để học hỏi và trao dồi thêm.
    Lằng nhằng quá
    Chạy code, đoán ý... cuối cùng sửa lại thành vầy:
    PHP Code:
    Sub Macro2()
      If 
    Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row1)
    End Sub 

  4. Có 4 thành viên cảm ơn ndu96081631 về bài viết này:


  5. #4
    Tham gia ngày
    08 2009
    Bài gởi
    856
    Cảm ơn
    3,969
    Được cảm ơn 1,571 lần trong 660 bài viết
    Trích Nguyên văn bởi ndu96081631 View Post
    Lằng nhằng quá
    Chạy code, đoán ý... cuối cùng sửa lại thành vầy:
    PHP Code:
    Sub Macro2()
    If 
    Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row1)
    End Sub 
    Đúng là code Thầy quá hay và ngắn, tuy nhiên cần bẫy chút xíu ở hàng điều kiện và hàng công thức để tránh đặt nhầm chỗ rồi bấm chạy code thì lại ẹc ... ẹc ...

    PHP Code:
    Sub Macro2()
      If 
    ActiveCell.Row <= 2 Then Exit Sub
      
    If Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row1)
    End Sub 
    Không biết thì hỏi, muốn giỏi phải học.
    --------------------------------------

  6. Thành viên sau cảm ơn Ếch Xanh về bài viết này:


  7. #5
    Tham gia ngày
    06 2008
    Bài gởi
    23,743
    Cảm ơn
    13,606
    Được cảm ơn 42,251 lần trong 19,139 bài viết
    Trích Nguyên văn bởi Learning_Excel View Post
    Đúng là code Thầy quá hay và ngắn, tuy nhiên cần bẫy chút xíu ở hàng điều kiện và hàng công thức để tránh đặt nhầm chỗ rồi bấm chạy code thì lại ẹc ... ẹc ...

    PHP Code:
    Sub Macro2()
      If 
    ActiveCell.Row <= 2 Then Exit Sub
      
    If Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row1)
    End Sub 
    Ẹc... Ẹc... If ActiveCell.Row =1 Then Exit Sub là được rồi... ActiveCell.Row =2 đâu có vấn đề gì chứ

  8. Thành viên sau cảm ơn ndu96081631 về bài viết này:


  9. #6
    Tham gia ngày
    03 2008
    Bài gởi
    6
    Cảm ơn
    4
    Được cảm ơn 0 lần trong 0 bài viết
    Code VD1.txtVD1.xlsx

    Gởi lại mọi người xem giúp

  10. #7
    Tham gia ngày
    03 2008
    Bài gởi
    6
    Cảm ơn
    4
    Được cảm ơn 0 lần trong 0 bài viết
    Thank! Bạn Tuy nhiên điều kiện phải xét từng Cột. Nếu cốt nào mình muốn copy thì set nó =1 không thì cho no =0 để khỏi copy.

  11. #8
    Tham gia ngày
    06 2008
    Bài gởi
    23,743
    Cảm ơn
    13,606
    Được cảm ơn 42,251 lần trong 19,139 bài viết
    Trích Nguyên văn bởi khoaitd View Post
    Thank! Bạn Tuy nhiên điều kiện phải xét từng Cột. Nếu cốt nào mình muốn copy thì set nó =1 không thì cho no =0 để khỏi copy.
    Với file của bạn thì làm vầy:
    PHP Code:
    Sub Test()
      
    Dim i As Long
      
    If ActiveCell.Row 2 Then
        
    For 1 To 7
          
    If Cells(1i) = 1 Then Cells(3i).Copy Cells(ActiveCell.Rowi)
        
    Next
      End 
    If
    End Sub 

  12. Có 3 thành viên cảm ơn ndu96081631 về bài viết này:


  13. #9
    Tham gia ngày
    03 2008
    Bài gởi
    6
    Cảm ơn
    4
    Được cảm ơn 0 lần trong 0 bài viết
    Trích Nguyên văn bởi ndu96081631 View Post
    Với file của bạn thì làm vầy:
    PHP Code:
    Sub Test()
    Dim i As Long
    If ActiveCell.Row 2 Then
    For 1 To 7
    If Cells(1i) = 1 Then Cells(3i).Copy Cells(ActiveCell.Rowi)
    Next
    End 
    If
    End Sub 
    Quá ngắn gọn Xin cảm ơn bác

  14. #10

    Nhờ các anh chị em trên diễn đàn giúp đỡ

    Em có file exel này muốn viết một đoạn code vba, để khi mình gõ MHDM ở bảng PTDG thì công hang mục công việc bên bảng DINHMUC hiển thị trên bảng PTDG, mong các bác chỉ giáo giúp, em không biết VBA,

Trang 1/2 1 2 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]