Xin giúp đỡ về cách điền thông tin hàng loạt (1 người xem)

Liên hệ QC

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

tungquan0075

Thành viên mới
Tham gia
11/5/14
Bài viết
4
Được thích
0
Mình đang muốn làm như sau trong excel nhưng không biết làm như thế nào.
Các bạn xem và chỉ mình cách làm với.
Cụ thể như sau:
Mình có 1 đoạn văn bản là "Tôi yêu excel" nằm trong ô A1.
H mình muốn khi mình điền 1 số n vào ô B1 thì đoạn văn bản trong ô A1 sẽ được gán vào từ dòng C1 đến C(n).
Ví dụ: mình điền số 3 thì sẽ gán đoạn văn bản "Tôi yêu excel" vào 3 dòng c1, c2, c3 như bảng bên dưới.



Mong nhận được sự hỗ trợ từ các bạn và anh, chị.
Thanks!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình đang muốn làm như sau trong excel nhưng không biết làm như thế nào.
Các bạn xem và chỉ mình cách làm với.
Cụ thể như sau:
Mình có 1 đoạn văn bản là "Tôi yêu excel" nằm trong ô A1.
H mình muốn khi mình điền 1 số n vào ô B1 thì đoạn văn bản trong ô A1 sẽ được gán vào từ dòng C1 đến C(n).
Ví dụ: mình điền số 3 thì sẽ gán đoạn văn bản "Tôi yêu excel" vào 3 dòng c1, c2, c3 như bảng bên dưới.

Mong nhận được sự hỗ trợ từ các bạn và anh, chị.
Thanks!

Mã:
C1=IF(ROW()<=$B$1,$A$1,"")

kéo bí tỉ,để đó
 
Mình đang muốn làm như sau trong excel nhưng không biết làm như thế nào.
Các bạn xem và chỉ mình cách làm với.
....
Mong nhận được sự hỗ trợ từ các bạn và anh, chị.
Thanks!
Bạn xem File. Chỉ cần nhập số vào ô B1 sau đó ấn phím Enter là được!
P/S: Nhớ Ennable Macro trước khi chạy File nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem File. Chỉ cần nhập số vào ô B1 sau đó ấn phím Enter là được!
P/S: Nhớ Ennable Macro trước khi chạy File nhé!
Bạn thử xóa cột C rồi nhấn bất kỳ chỗ nào trên sheet. Nhấn vào ô nào trống code cũng phải chạy là sao?
 
Bạn thử xóa cột C rồi nhấn bất kỳ chỗ nào trên sheet. Nhấn vào ô nào trống code cũng phải chạy là sao?
Em mới học VBA thầy ạ, với lại học chắp vá nên còn nhiều thiếu sót. Mong thầy chỉ bảo để code của em được hoàn thiện hơn ạ!
 
Thế bạn hiểu thế nào là selection change? Lúc này cần sự kiện gì?
 
Thế bạn hiểu thế nào là selection change? Lúc này cần sự kiện gì?
Lúc đầu em dùng sự kiện Worksheet_Change nhưng code không chạy. Em không biết mình bị lỗi ở đâu ạ???

Thế bạn hiểu thế nào là selection change? Lúc này cần sự kiện gì?
Em đã tìm ra nguyên nhân tại sao sự kiện Worksheet_change lúc trước của em tại sao không chạy. Em đã sửa lại như sau:
Public Sub Worksheet_Change(ByVal target As Range)
Dim i As Long
On Error Resume Next
With Sheet1
If target.Address = "$B$1" Then
.Range("C1:C" & .Range("C65500").End(xlUp).Row).ClearContents
i = .Range("B1").Value
.Range("C1:C" & i) = Range("A1")
End If
End With
End Sub
Cảm ơn thầy! Nhờ thầy em đã phân biệt được 2 sự kiện này ạ!
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Em đã tìm ra nguyên nhân tại sao sự kiện Worksheet_change lúc trước của em tại sao không chạy. Em đã sửa lại như sau:

Cảm ơn thầy! Nhờ thầy em đã phân biệt được 2 sự kiện này ạ!
Quá tuyệt vời. Tôi cũng đang có công việc cần áp dụng cách này. Cảm ơn bạn!
 
Lúc đầu em dùng sự kiện Worksheet_Change nhưng code không chạy. Em không biết mình bị lỗi ở đâu ạ???


Em đã tìm ra nguyên nhân tại sao sự kiện Worksheet_change lúc trước của em tại sao không chạy. Em đã sửa lại như sau:

Cảm ơn thầy! Nhờ thầy em đã phân biệt được 2 sự kiện này ạ!
Mình muốn mở rộng bài toán ra thành:
khi ta nhập 1 số m lên ô B(n) thì nội dung trong ô A(n) sẽ được copy thành thêm m lần. Lần lượt từ ô a(n+1) đến a(n + m).
Thì làm như thế nào ạ.
Thanks!
 
Lần chỉnh sửa cuối:
Mình muốn mở rộng bài toán ra thành:
khi ta nhập 1 số m lên ô B(n) thì nội dung trong ô A(n) sẽ được copy thành thêm m lần. Lần lượt từ ô a(n+1) đến a(n + m).
Thì làm như thế nào ạ.
Thanks!
+ Tạm thời thế này đã. Chức năng tự động xóa dữ liệu cũ ở cột A khi nhập số m vào cột B tôi chưa nghĩ ra. Bạn dùng tạm, khi nào có thời gian tôi sẽ giúp.
+ Mong các Thầy và các bạn có thể sửa thêm code của em để hoàn thiện hơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn tải File này nhé! Thêm phần hướng dẫn sử dụng.
 

File đính kèm

Đã bổ sung thêm đoạn code xóa tự động dữ liệu cũ ở cột A khi nhập số m mới vào cột B. Bạn xem thử có gì hồi âm lại cho tôi.
 

File đính kèm

Mình muốn mở rộng bài toán ra thành:
khi ta nhập 1 số m lên ô B(n) thì nội dung trong ô A(n) sẽ được copy thành thêm m lần. Lần lượt từ ô a(n+1) đến a(n + m).
Thì làm như thế nào ạ.
Thanks!
Tham khảo:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, [B1:B65535]) Is Nothing Then
        Application.EnableEvents = False
        If IsEmpty(Target.Offset(, -1)) Then
            Target = Empty
        ElseIf Val(Target) > 0 Then
            If Target > Target.End(4).Row - Target.Row Then
                Target.Offset(1).Resize(Target + Target.Row - Target.End(4).Row).EntireRow.Insert
                Target.Offset(, 1).Resize(Target) = Target.Offset(, -1)
            ElseIf Target < Target.End(4).Row - Target.Row And Target.End(4).Row < 65535 Then
                Target.Offset(1).Resize(Target.End(4).Row - Target.Row - Target).EntireRow.Delete
                Target.Offset(, 1).Resize(Target) = Target.Offset(, -1)
            Else
                Target.Offset(, 1).Resize(Target) = Target.Offset(, -1)
            End If
        End If
        Application.EnableEvents = True
    End If
End Sub
 

File đính kèm

Tham khảo:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, [B1:B65535]) Is Nothing Then
        Application.EnableEvents = False
        If IsEmpty(Target.Offset(, -1)) Then
            Target = Empty
        ElseIf Val(Target) > 0 Then
            If Target > Target.End(4).Row - Target.Row Then
                Target.Offset(1).Resize(Target + Target.Row - Target.End(4).Row).EntireRow.Insert
                Target.Offset(, 1).Resize(Target) = Target.Offset(, -1)
            ElseIf Target < Target.End(4).Row - Target.Row And Target.End(4).Row < 65535 Then
                Target.Offset(1).Resize(Target.End(4).Row - Target.Row - Target).EntireRow.Delete
                Target.Offset(, 1).Resize(Target) = Target.Offset(, -1)
            Else
                Target.Offset(, 1).Resize(Target) = Target.Offset(, -1)
            End If
        End If
        Application.EnableEvents = True
    End If
End Sub
Bạn xem lại, tôi thấy tác giả có yêu cầu:
quote_icon.png
Nguyên văn bởi tungquan0075

Mình muốn mở rộng bài toán ra thành:
khi ta nhập 1 số m lên ô B(n) thì nội dung trong ô A(n) sẽ được copy thành thêm m lần. Lần lượt từ ô a(n+1) đến a(n + m).
Thì làm như thế nào ạ.
Thanks!
Không biết tác giả viết nhầm hay bạn hiểu nhầm.
 
Bạn xem lại, tôi thấy tác giả có yêu cầu:
Không biết tác giả viết nhầm hay bạn hiểu nhầm.
Tôi không đọc kỹ từ đầu mà lấy file bài #11 của bạn để viết tiếp. Cũng là 1 giải pháp, xoay quanh Target, chỉ sử dụng các phương thức Offset, Resize.
 
Tôi không đọc kỹ từ đầu mà lấy file bài #11 của bạn để viết tiếp. Cũng là 1 giải pháp, xoay quanh Target, chỉ sử dụng các phương thức Offset, Resize.
Nếu có thể hôm nào bạn chỉ thêm cho tôi 1 chút về thuộc tính Resize nhé!
 
Lần chỉnh sửa cuối:
Đã bổ sung thêm đoạn code xóa tự động dữ liệu cũ ở cột A khi nhập số m mới vào cột B. Bạn xem thử có gì hồi âm lại cho tôi.
chuot0106 đã viết:
Không biết tác giả viết nhầm hay bạn hiểu nhầm.

Nguyên văn câu hỏi là:
Mình muốn mở rộng bài toán ra thành:
khi ta nhập 1 số m lên ô B(n) thì nội dung trong ô A(n) sẽ được copy thành thêm m lần. Lần lượt từ ô a(n+1) đến a(n + m).

Bạn cũng nhầm nốt. Người ta muốn điền vào 1 ô bất kỳ (Bn) chứ không phải B7 (với 7 đọc từ B1) thì code sẽ chạy tương ứng. Nếu gõ 10 vào B12, yêu cầu sẽ là điền từ B13 đến B23 giá trị của ô A12. Nếu gõ 8 vào ô B15, thì sẽ điền giá trị của A15 vào A16:A23, ...


Còn code của bạn: Chỉ gõ vào ô B7 code mới chạy. Đó là nếu viết đúng. Còn bạn viết sai nên: B7 của bạn đang = 6, gõ 6 vào bất kỳ ô nào trên bảng tính, code cũng chạy. bạn thử xóa A8 trở xuống rồi gõ 6 vào ô bất kỳ sẽ thấy.

Code bài 7 tôi thấy bạn sử dụng Address nên nghĩ rằng bạn đã hiểu, rốt cuộc tới bài này lỗi cũ lập lại.
 
Nguyên văn câu hỏi là:
Mình muốn mở rộng bài toán ra thành:
khi ta nhập 1 số m lên ô B(n) thì nội dung trong ô A(n) sẽ được copy thành thêm m lần. Lần lượt từ ô a(n+1) đến a(n + m).

Bạn cũng nhầm nốt. Người ta muốn điền vào 1 ô bất kỳ (Bn) chứ không phải B7 (với 7 đọc từ B1) thì code sẽ chạy tương ứng. Nếu gõ 10 vào B12, yêu cầu sẽ là điền từ B13 đến B23 giá trị của ô A12. Nếu gõ 8 vào ô B15, thì sẽ điền giá trị của A15 vào A16:A23, ...


Còn code của bạn: Chỉ gõ vào ô B7 code mới chạy. Đó là nếu viết đúng. Còn bạn viết sai nên: B7 của bạn đang = 6, gõ 6 vào bất kỳ ô nào trên bảng tính, code cũng chạy. bạn thử xóa A8 trở xuống rồi gõ 6 vào ô bất kỳ sẽ thấy.

Code bài 7 tôi thấy bạn sử dụng Address nên nghĩ rằng bạn đã hiểu, rốt cuộc tới bài này lỗi cũ lập lại.
Thực sự với yêu cầu thêm của tác giả em thấy hơi bí về thuật toán. Mong thầy giúp đỡ để code được hoàn thiện ạ. Em chân thành cảm ơn thầy.
 
+ Bạn xem File, thực sự không hiểu bạn định làm công việc gì? Bạn đưa yêu cầu có chuẩn không nữa. Tôi cứ làm.
+ Nhiều lúc, mong gặp bạn để hỏi xem có đúng không mà không thấy bạn vào diễn đàn nên đành chịu, phải làm mò.
+ Theo gợi ý của thầy ptm0412 tôi đã sửa lại code. Bạn xem các File tôi gửi File nào thấy đúng ý thì bạn dùng, có gì không đúng thì phải hồi âm ngay! Tôi không thích sửa đi sửa lại quá nhiều lần.
 

File đính kèm

bạn biết dùng công thức =vnd(A1$) làm sao trả kết quả bằng chữ có chữ " đồng " đấng sau ko?
 
+ Bạn xem File, thực sự không hiểu bạn định làm công việc gì? Bạn đưa yêu cầu có chuẩn không nữa. Tôi cứ làm.
+ Nhiều lúc, mong gặp bạn để hỏi xem có đúng không mà không thấy bạn vào diễn đàn nên đành chịu, phải làm mò.
+ Theo gợi ý của thầy ptm0412 tôi đã sửa lại code. Bạn xem các File tôi gửi File nào thấy đúng ý thì bạn dùng, có gì không đúng thì phải hồi âm ngay! Tôi không thích sửa đi sửa lại quá nhiều lần.

Trước tiên mình rất cảm ơn bạn đã nhiệt tình giúp đỡ mình. Cũng xin lỗi vì công việc mình bận nên 1 ngày chỉ lên diễn dàn được 1 2 lần nên không phản hồi lại liên tục được. Mong bạn thông cảm.
Trước mình trốn học môn tin đại cương nên gà excel quá. H muốn làm gi cũng phải nhờ giúp.
File trên của bạn mình đã tham khảo và sửa đưọc theo đúng ý đồ :)
Cảm ơn bạn rất nhiều.
Tiện đây bạn có giáo trình online nào dạy excel và excel nâng cao & VBA cho mình xin mình tham khảo với.
Nhiều khi định làm 1 cái gi đó bằng excel, đã nghĩ ra giải thuật nhưng không bít làm trên excel ntn.
Cảm ơn tất cả mọi người.
 
+ Cũng xin lỗi vì công việc mình bận nên 1 ngày chỉ lên diễn dàn được 1 2 lần nên không phản hồi lại liên tục được. Mong bạn thông cảm.
+ Hi, Một ngày lên diễn "1 2" lần mà không phản hồi được à?
+ File trên của bạn mình đã tham khảo và sửa đưọc theo đúng ý đồ.
Có thể cho tôi biết bạn đã áp dụng code trên vào công việc gì được không vây?
 
Tôi không thích sửa đi sửa lại quá nhiều lần.
Nếu sai cũng phải sửa như thường. Bạn tính xem đã sửa mấy lần rồi, đã gọi là nhiều chưa?

Tôi thì thích ai chỉ cho tôi chỗ sai để tôi sửa, càng nhiều càng tốt.
 
Lần chỉnh sửa cuối:
+ Hi, Một ngày lên diễn "1 2" lần mà không phản hồi được à?

Có thể cho tôi biết bạn đã áp dụng code trên vào công việc gì được không vây?

Rất xin lỗi mình đã k repply lại được tất cả sự giúp đỡ của bạn.
File của bạn mình cũng không đem sủ dụng với mục đích thương mại hay kinh tế gi đâu.
Chỉ đơn giản mình gà excel nên k biết là chỉ cần copy và dán vào các ô được chọn là toàn bộ nội dung sẽ đc copy vào tất cả các ô mình chọn
Nên mình tìm hiểu theo hướng code thôi.
Gà quá mà.
Sorry đã làm mất thời gian của bạn trong mấy ngày qua.
Cái đơn giản mà mình làm phức tạp hóa và để bạn phải mất nhiều thời gian rồi.
Một lần nữa xin lỗi bạn.
 

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

Back
Top Bottom