Xin mọi người giúp tôi về VBA nhập thông tin KH. (2 người xem)

  • Thread starter Thread starter longlanh
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

longlanh

Thành viên mới
Tham gia
13/11/06
Bài viết
20
Được thích
0
Tôi mới được phân công quản lý HĐMB điện nên phải nhập thông tin KH và in HĐ
Tôi không biết về VBA mà học thì không có thời gian và lâu. Hiện tại tôi nhập bằng bảng excel sau đó sử dụng mail merge ra word để in nhưng rất mất thời gian vì hàng ngang quá rộng. Mong các bác giúp một đoạn VBA để tôi nhập thông tin như trong file đính kèm. Cảm ơn các bác rất nhiều rất nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:
nếu chỉ cần điền thông tin vào 2 sheet từ sheet đầu tiên thì đâu cần VBA. dùng hàm là được rồi. Bạn thử xem thế này có được không?
 

File đính kèm

Cảm ơn ban! nhưng mình muốn lưu trong tháng và nhập nhiều KH trong một ngày, tháng thì không chèn dòng xuống cho lại phải copy sang một file khác. nên mới muốn có VBA.
 
Cảm ơn ban! nhưng mình muốn lưu trong tháng và nhập nhiều KH trong một ngày, tháng thì không chèn dòng xuống cho lại phải copy sang một file khác. nên mới muốn có VBA.
Dùng Record new macros ghi lại công việc muốn làm.
Thử xem có xài được không.
 

File đính kèm

Thế là tốt lắm rồi cảm ơn bate nhé.
 
Hihi. Code của Bate hổng có quánh số thứ tự
Tham gia một cái cho dzui:
Mã:
Public Sub BaTeBeTa()
    With Sheets("HD").[b1000].End(xlUp)(2)
        .Resize(, 19) = Application.WorksheetFunction.Transpose([c3:c21]) 'Gán du liêu
        .Offset(, -1) = .Row - 1 ' Danh sô thu tu
    End With
        With Sheets("PHULUC").[b1000].End(xlUp)(2)
            .Resize(, 11) = Application.WorksheetFunction.Transpose([c22:c32]) 'Gán du liêu
            .Offset(, -1) = .Row - 1 ' Danh sô thu tu
        End With
   Range("C3:C32").ClearContents
End Sub
 
bác @concogia ơi, cho em hỏi chút:
PHP:
With Sheets("HD").[b1000].End(xlUp)(2)
Em không hiểu trong đoạn trên số (2) có nghĩa như thế nào? Cụ thể chỗ đố viết đúng là chữ gì?
Cám ơn bác nhiều!
 
bác @concogia ơi, cho em hỏi chút:
PHP:
With Sheets("HD").[b1000].End(xlUp)(2)
Em không hiểu trong đoạn trên số (2) có nghĩa như thế nào? Cụ thể chỗ đố viết đúng là chữ gì?
Cám ơn bác nhiều!
Là thế này
With Sheets("HD").[b1000].End(xlUp).Offset(1)
Sao không thử viết một đoạn code, thay thế số 2 bằng 3,4,1,0,-1,-2...sẽ hiểu ngay thôi mà
Híc
 
Là thế này

Sao không thử viết một đoạn code, thay thế số 2 bằng 3,4,1,0,-1,-2...sẽ hiểu ngay thôi mà
Híc
Cò ơi! Có những "vụ" đọc hướng dẫn sẽ dễ hơn là ngồi thử các trường hợp 1,2,3,4,...Nhất là trong VBA.
Có gì thì giải thích hoặc ví dụ một số "mánh" cho anh em dễ hiểu. Cảm ơn nhiều. (Cho mình thiếu nợ 1 xị)
 
Cò ơi! Có những "vụ" đọc hướng dẫn sẽ dễ hơn là ngồi thử các trường hợp 1,2,3,4,...Nhất là trong VBA.
Có gì thì giải thích hoặc ví dụ một số "mánh" cho anh em dễ hiểu. Cảm ơn nhiều. (Cho mình thiếu nợ 1 xị)
Ừ, muốn nói thì nói, tại sợ nói rồi lại nói Cò ...."nhiều chiện"
Code của BaTe:
Sub GPE3T()
Application.ScreenUpdating = False
Dim n As Double
n = Application.WorksheetFunction.CountA(Sheets("HD").Range("B1:B1000"))
Bạn dùng biến n để tìm cell cuối cùng có dữ liệu ở cột B sheet "HD" cũng không sai, nhưng trong VBA cho phép kiếm em đó bằng câu lệnh:
Sheets("HD").[b1000].End(xlUp)
==> Từ cell B1000 chạy ngược lên trên, tới khi nào đụng cell có dữ liệu thì...."xì tốp hia"
Muốn chép dữ liệu ở dòng tiếp theo thì: từ Cell đang chọn nhảy xuống 1 dòng, ta dùng : Ofset(1,0), câu lệnh đó thành
Sheets("HD").[b1000].End(xlUp).Offset(1,0)
==> Offset(Hàng,Cột) ==> Offset(1,0): nhảy xuống một hàng còn cột hổng có nhảy _Cột hổng nhảy có thể viết gọn lại thành Offset(1)
Range("C3:C21").Select
Selection.Copy
2 câu này Bate có thể rút gọn:
Range("C3:C21").Copy
bỏ mấy em "Sề lếch" với " Sề lếch si ông" đi cho gọn
Sheets("HD").Select
Range("B" & n + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("TTKH").Select
Range("C22:C32").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("PHULUC").Select
Range("B" & n + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("TTKH").Select
Range("C3:C32").ClearContents
Range("C3").Select
End Sub
Trong bài BaTe dùng Copy & Paste còn mình dùng phép gán
Nói chung khi đã ghi macro xong, bạn cứ thử vô hiệu các lệnh cảm thấy thừa (thường là mấy em "Select", "Selection") khi nào code nó cự nự thì mình trả về "U như kỹ". Híc
Thân
 
minh khong hieu lăm mong moi người giúp đỡ với. cảm ơn nhé!
 
Bạn xem thử cái này đi, nếu xem cãm thấy thích mình giúp cho.
 

File đính kèm

Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom