Hỏi đáp VBA trong chủ đề "Chập chững đến VBA"

Liên hệ QC

luongchihien

Thành viên mới
Tham gia
26/8/11
Bài viết
7
Được thích
1
Em xem đề tài và học hỏi được một tí, với yêu cầu như vậy! Trong file excel có sheet "Form" và sheet "Thong Tin KH" bây giờ em muốn nhập vào form (từ ô D4: D32, như trong file) rồi enter thì dữ liệu được nhập vào sheet "Thong Tin KH". Mong mọi người giúp đỡ
Em mò mẫn mãi mà ko ra ( em làm được cái gì là đính kèm hết trong file đó. gồm file excel và word chứa code)
Cảm ơn trước, cho những ai giúp đỡ!
 

File đính kèm

  • aa.xlsx
    35.8 KB · Đọc: 57
  • Code nhập vào Module.doc
    31.5 KB · Đọc: 70
Theo em, đôi khi hiện tại chưa được (hoặc chế ra chưa đúng), nhưng có thể trong tương lai thì vẫn có thể được Bác à.

Lê Văn Duyệt

Lúc đó sẽ gọi là "súng ngắn chống tăng", và thực nghiệm trên xe tăng mới đúng. Vấn đề là khi chế ra súng ngắn chống tăng thì lại thực nghiệm trên cây chuối.

Ý tôi muốn nói là đối tượng thực nghiệm phải đúng với mục đích thử nghiệm.
 
Upvote 0
Tại Sheet Tn, copy B1:B10 của Sheet Tn-1 và Paste Value vào A1: A10 của Sheet Tn

Trong 1 File có nhiều Sheet trong đó có các Sheet như T00, T01, T02, T03 ...

Tại Sheet T01, em muốn copy khối B1:B10 của Sheet T00, và Paste Value vào khối A1:A10 của Sheet T01
Em muốn có đọan code chung để có thể thực hiện ở các tình huống tương tự khác.

Xin vui lòng giúp em. Cảm ơn!​
 
Upvote 0
Câu lệnh thì thế này :
Sheets("T00").[B1:B10].value = sheets("T01").[A1:A10].value
Code chung là thế nào? Bạn có thể nói rõ được không? Bạn diễn tả chung chung quá!!!
 
Lần chỉnh sửa cuối:
Upvote 0
Câu lệnh thì thế này :
Sheets("T00").[A1:A10].value = sheets("T01").[B1:B10].value
Code chung là thế nào? Bạn có thể nói rõ được không? Bạn diễn tả chung chung quá!!!

Đoạn code chung có nghĩa là có thể áp dụng chung cho cả các Tên Sheet có cấu trúc Tn (Trong đó n là từ 00 đến 99). Như vậy nếu có code chung thì ta vẫn chạy được ở các Sheet khác, VD: Tại Sheet T99, em muốn copy khối B1:B10 của Sheet T98, và Paste Value vào khối A1:A10 của Sheet T99 (Nghĩa là mỗi lần chạy code ta không cần thay đổi tên Sheet nữa)
Thân!
 
Upvote 0
Đoạn code chung có nghĩa là có thể áp dụng chung cho cả các Tên Sheet có cấu trúc Tn (Trong đó n là từ 00 đến 99). Như vậy nếu có code chung thì ta vẫn chạy được ở các Sheet khác, VD: Tại Sheet T99, em muốn copy khối B1:B10 của Sheet T98, và Paste Value vào khối A1:A10 của Sheet T99 (Nghĩa là mỗi lần chạy code ta không cần thay đổi tên Sheet nữa)
Thân!
PHP:
Sub copy()
With ActiveSheet
.[B1:B10].Value = Sheets("T" & Format(Right(.Name, 2) - 1, "00")).[A1:A10].Value
End With
End Sub
 
Upvote 0
Đoạn code chung có nghĩa là có thể áp dụng chung cho cả các Tên Sheet có cấu trúc Tn (Trong đó n là từ 00 đến 99). Như vậy nếu có code chung thì ta vẫn chạy được ở các Sheet khác, VD: Tại Sheet T99, em muốn copy khối B1:B10 của Sheet T98, và Paste Value vào khối A1:A10 của Sheet T99 (Nghĩa là mỗi lần chạy code ta không cần thay đổi tên Sheet nữa)
Thân!
Hổng biết khi "đứng" tại sheet T00 thì sẽ copy dữ liệu tại sheet nào nhỉ?
 
Upvote 0
Thì code sẽ báo lỗi và ta thêm điều kiện nếu đứng tại sheet T00 thì thoát SUB, ẸC ẸC....!
 
Upvote 0
Với những người lập trình chuyên nghiệp như anh NDU thì dùng On ERROR RESUME NEXT thì không vấn đề gì nhưng với những người mới viết CODE theo em nên hạn chế dùng cái đó, vì nhiều khi ta viết code bị lỗi (những lỗi nhỏ nên khắc phục) nhưng ta lại không biết nó lỗi ở đâu...
 
Upvote 0
Giúp em sửa lỗi đoạn code này
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Range("A9:A50") Then
Target.Offset(, 1) = Target.Value
End If
End Sub
Code bị lỗi dòng thứ 2. Em cảm ơn!
 
Upvote 0
Dòng thứ 2:

If Not Intersect(Target, Range("A9:A50")) Is Nothing Then
 
Upvote 0
Thầy cô và anh chị cho em hỏi 02 câu:
1/ Khi em mở 1 File thì muốn luôn luôn mặc định của bảng tính sẽ ở chế độ
Mã:
.Calculation = xlCalculationManual

Vì thực tế khi em mở 1 File AAA đã để chế độ này bằng Tools/Options/Caculation/Manual, và khi mở tiếp File BBB và nếu như File này ở chế độ Automatic thì File AAA sẽ chuyển về chế độ Automatic. Nên ý em muốn là như trên

2/ Do bảng tính luôn ở chế độ Manual, nên mỗi lần chọn "Số phiếu" tại Cell L5 (tại cell này sử dụng Validation) của Sheet "Phiếu Thu" (Sheet này tính toán bằng công thức) thì phải cập nhật lại bằng phím F9. Ý em muốn khi chọn số phiếu tại cell L5 thì sheet "Phiếu Thu" tự động cập nhật lại số liệu và sau đó trả về Manual.

Em cảm ơn
 
Upvote 0
Thầy cô và anh chị cho em hỏi 02 câu:
1/ Khi em mở 1 File thì muốn luôn luôn mặc định của bảng tính sẽ ở chế độ
Mã:
.Calculation = xlCalculationManual

Vì thực tế khi em mở 1 File AAA đã để chế độ này bằng Tools/Options/Caculation/Manual, và khi mở tiếp File BBB và nếu như File này ở chế độ Automatic thì File AAA sẽ chuyển về chế độ Automatic. Nên ý em muốn là như trên

2/ Do bảng tính luôn ở chế độ Manual, nên mỗi lần chọn "Số phiếu" tại Cell L5 (tại cell này sử dụng Validation) của Sheet "Phiếu Thu" (Sheet này tính toán bằng công thức) thì phải cập nhật lại bằng phím F9. Ý em muốn khi chọn số phiếu tại cell L5 thì sheet "Phiếu Thu" tự động cập nhật lại số liệu và sau đó trả về Manual.

Em cảm ơn
1. Bạn đặt code trong sự kiện Private Sub Workbook_Open()
2. Bạn sử dụng lệnh Calculate là nó tính toán lại bảng tính (tương đương F9)
 
Upvote 0
1. Bạn đặt code trong sự kiện Private Sub Workbook_Open()
Em đặt code tại ThisWorkbook là như thế này
Mã:
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub
2. Bạn sử dụng lệnh Calculate là nó tính toán lại bảng tính (tương đương F9)
Câu (2) em không biết sử dụng sự kiện này như thế nào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
.........................................................................

Mong anh giúp em. Cảm ơn anh.
 
Upvote 0
Em đặt code tại ThisWorkbook là như thế này
Mã:
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub

Câu (2) em không biết sử dụng sự kiện này như thế nào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
.........................................................................

Mong anh giúp em. Cảm ơn anh.
Câu (2)
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
........Code của bạn.........................................................
Calculate
End Sub
 
Upvote 0
Như em nói ở trên, ở Sheet này em chỉ dùng công thức chứ không dùng code!
Vậy mấy bài vừa rồi bạn hỏi gì (câu 2)?. Có phải sheet "Phiếu Thu" bạn sử dụng công thức hết, bạn muốn khi Cell L5 thay đổi thì tính toán. Cụ thể bạn phải dùng code cho sheet này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$L$5" Then
  Calculate
End If
End Sub
Hoặc nếu khác thì bạn đưa file mình thử xem
 
Upvote 0
ACE diễn đàn cho em hỏi, em load về cái "private sub(.....) " mà bấm run hoài không thấy tên code hiện ra như các sub thường, vậy em chạy private sub bằng cách nào xin ACE chỉ giáo cho em....Xin cảm ơn thất nhiều....
 
Upvote 0
ACE diễn đàn cho em hỏi, em load về cái "private sub(.....) " mà bấm run hoài không thấy tên code hiện ra như các sub thường, vậy em chạy private sub bằng cách nào xin ACE chỉ giáo cho em....Xin cảm ơn thất nhiều....Anh Viehoai trả lời giúp em với..
Bạn nhấn Alt + F8 xong rồi gõ tên sub vào ô Macro name sau đó lick vào Run. Hoặc bỏ chữ Private đi cho nó hiện lên luôn. Hoặc gán nó vào một nút lệnh,...
 
Upvote 0
Web KT
Back
Top Bottom