Toàn là "đoán mò" khi bạn không có file, biết cái vùng cần copy ở đâu, sheet nào, ActiveCell ở sheet nào, nếu không cùng sheet thì làm sao viết code.vâng em cảm ơn! sáng đi làm giờ mới xem được. nhiều người giúp quá, em đang thử! cảm ơn các anh chị nhiều
Bài đã được tự động gộp:
chỗ này em không biết diễn tả thế nào!
Nôm la là khi em ấn copy dữ liệu rồi và chạy code sẽ xuất ra kết quả (vị trí điền ở ô active excell mình đặt con trỏ)
Vẫn là khâu em trình bầy chưa rõ, em xin rút kinh nghiệm lần sau đăng bàiToàn là "đoán mò" khi bạn không có file, biết cái vùng cần copy ở đâu, sheet nào, ActiveCell ở sheet nào, nếu không cùng sheet thì làm sao viết code.
Nếu cùng sheet thì code trên gán vào Cell E2, bạn thay thành ActiveCell của bạn là xong.
Bạn "hà tiện" 1 cái file và những giải thích rõ ý muốn.
20 bài mà chưa ai hiểu ý bạn. Trong khi bạn đã viết, hỏi hơn 500 bài.
Khi sắp xếp lại theo cột phụ này thì bạn phải chọn tất cả các cột khác có liên quan chứ sao mà chạy loạn được, dòng nào đi theo dòng đó chứ.cách này là đổi vị trí! nếu đổi như vậy thì các hàng khác đổi loạn lên ạ.
Bài đã được tự động gộp:
Em nghĩ không được vì còn liên quan đến các dữ liệu hàng khác sẽ chạy loạn theo
Bạn thử kiểu này xemVẫn là khâu em trình bầy chưa rõ, em xin rút kinh nghiệm lần sau đăng bài
copy dữ liệu có thể là ở các vị trí khác, hoặc bảng khác
và chạy code paste ra vị trí trên excell active tách ra thêm 1 dòng trống
View attachment 201686
Sub InputBox_Array()
Dim sRng As Range, eRng As Range
Dim sArr, dArr, I As Long, K As Long: K = 1
On Error GoTo Thoat
Set sRng = Application.InputBox(Prompt:="Chon vung du lieu ", Title:="Chon du lieu dau vao", Type:=8)
sArr = sRng.Value
ReDim dArr(1 To UBound(sArr) * 2, 1 To 1)
For I = 1 To UBound(sArr, 1)
If sArr(I, 1) <> Empty Then
dArr(K, 1) = sArr(I, 1)
If I < UBound(sArr) Then K = K + 2
End If
Next I
Set eRng = Application.InputBox(Prompt:="Chon 1 ô ", Title:="Chon o de dat ket qua ", Type:=8)
eRng(1, 1).Resize(K) = dArr
Thoat:
End Sub
Vâng đúng như này Chị à!Bạn thử kiểu này xem
PHP:Sub InputBox_Array() Dim sRng As Range, eRng As Range Dim sArr, dArr, I As Long, K As Long: K = 1 On Error GoTo Thoat Set sRng = Application.InputBox(Prompt:="Chon vung du lieu ", Title:="Chon du lieu dau vao", Type:=8) sArr = sRng.Value ReDim dArr(1 To UBound(sArr) * 2, 1 To 1) For I = 1 To UBound(sArr, 1) If sArr(I, 1) <> Empty Then dArr(K, 1) = sArr(I, 1) If I < UBound(sArr) Then K = K + 2 End If Next I Set eRng = Application.InputBox(Prompt:="Chon 1 ô ", Title:="Chon o de dat ket qua ", Type:=8) eRng(1, 1).Resize(K) = dArr Thoat: End Sub
Code này chắc chắn là không đạt luônBạn thử kiểu này xem
PHP:Sub InputBox_Array() Dim sRng As Range, eRng As Range Dim sArr, dArr, I As Long, K As Long: K = 1 On Error GoTo Thoat Set sRng = Application.InputBox(Prompt:="Chon vung du lieu ", Title:="Chon du lieu dau vao", Type:=8) sArr = sRng.Value ReDim dArr(1 To UBound(sArr) * 2, 1 To 1) For I = 1 To UBound(sArr, 1) If sArr(I, 1) <> Empty Then dArr(K, 1) = sArr(I, 1) If I < UBound(sArr) Then K = K + 2 End If Next I Set eRng = Application.InputBox(Prompt:="Chon 1 ô ", Title:="Chon o de dat ket qua ", Type:=8) eRng(1, 1).Resize(K) = dArr Thoat: End Sub
Sao lại kêu tui bằng Chị vậy hả trời ???Vâng đúng như này Chị à!
chỉnh hộ em thêm chỗ này:
+ Khi chọn dữ liệu có 2 cột, ô kết quả có thể paste ra chỉ được 1 cột
Sub InputBox_Array()
Dim sRng As Range, eRng As Range
Dim sArr, dArr, I As Long, J As Long, K As Long: K = 1
On Error GoTo Thoat
Set sRng = Application.InputBox(Prompt:="Chon vung du lieu ", Title:="Chon du lieu dau vao", Type:=8)
sArr = sRng.Value
ReDim dArr(1 To UBound(sArr) * 2, 1 To UBound(sArr, 2))
For I = 1 To UBound(sArr, 1)
For J = 1 To UBound(sArr, 2)
If sArr(I, J) <> Empty Then dArr(K, J) = sArr(I, J)
Next J
If I < UBound(sArr) Then K = K + 2
Next I
Set eRng = Application.InputBox(Prompt:="Chon 1 ô ", Title:="Chon o de dat ket qua ", Type:=8)
eRng(1, 1).Resize(K, UBound(sArr, 2)) = dArr
Thoat:
End Sub
Dạ! tại em thấy ảnh avartar là nữSao lại kêu tui bằng Chị vậy hả trời ???
PHP:Sub InputBox_Array() Dim sRng As Range, eRng As Range, DK As Boolean Dim sArr, dArr, I As Long, J As Long, K As Long: K = 1 On Error GoTo Thoat Set sRng = Application.InputBox(Prompt:="Chon vung du lieu ", Title:="Chon du lieu dau vao", Type:=8) sArr = sRng.Value ReDim dArr(1 To UBound(sArr) * 2, 1 To UBound(sArr, 2)) For I = 1 To UBound(sArr, 1) DK = False For J = 1 To UBound(sArr, 2) If sArr(I, J) <> Empty Then dArr(K, J) = sArr(I, J): DK = True End If Next J If I < UBound(sArr) Then If DK = True Then K = K + 2 End If Next I Set eRng = Application.InputBox(Prompt:="Chon 1 ô ", Title:="Chon o de dat ket qua ", Type:=8) eRng(1, 1).Resize(K, UBound(sArr, 2)) = dArr Thoat: End Sub
Khả năng được rồi! mình di chuyển InputBox ra vị trí khác, lần sau nó nằm ở vị trí mà mình di chuyểnDạ! tại em thấy ảnh avartar là nữ
khi mình bắt đầu chọn vùng dữ liệu cái InputBox có thể cho ẩn đi hoặc thu nhỏ lên 1 góc trái hoặc phải được khộng ạ
Chắc cái này Bạn phải liên hệ với cái người tạo ra cái InputBox thôiDạ! tại em thấy ảnh avartar là nữ
khi mình bắt đầu chọn vùng dữ liệu cái InputBox có thể cho ẩn đi hoặc thu nhỏ lên 1 góc trái hoặc phải được khộng ạ
Bài đã được tự động gộp:
Khả năng được rồi! mình di chuyển InputBox ra vị trí khác, lần sau nó nằm ở vị trí mà mình di chuyển
Em cảm ơn nhiều..
^^! được rồi ạ, mình di chuyển nó đi là được, lần sau gọi lệnh nó hiện ở vị trí mình di chuyển. Em cảm ơn anh chị rất nhiềuChắc cái này Bạn phải liên hệ với cái người tạo ra cái InputBox thôi
Bạn đã đọc hơn 500 bài của thớt rồi mà còn phải nói câu này ư?...
Bạn "hà tiện" 1 cái file và những giải thích rõ ý muốn.
20 bài mà chưa ai hiểu ý bạn. Trong khi bạn đã viết, hỏi hơn 500 bài.
Đồng ý hai tay luôn, mà chính xác là tất cả đều lót đường.Bạn đã đọc hơn 500 bài của thớt rồi mà còn phải nói câu này ư?
Thớt hiện đang tính toán một (hay vài) cái project gì đó. Cứ ba bữa thì lại có ý kiến muốn thực hiện phần này phần nọ.
Thói quen của thớt là nghĩ tới đâu hỏi tới đó. Đã biết cuối cùng ra sao đâu mà lập file?
Hình như ở đây chỉ có một hay hai người hiểu ý thớt để trả lời hoàn tất. Tất cả các bạn còn lại chỉ góp code, góp công thức lót đường.
Riêng anh thì không lót đường, vì đã lường trước tình huống (nêu tại bài 11). Nhưng chủ Topic không ý kiến.Đồng ý hai tay luôn, mà chính xác là tất cả đều lót đường.
+...
Nói chung:
Đa số các thành viên hay hỏi nữa vời kiểu này (đưa File chỉ có 1 cột, thậm chí cũng chẳng có tiêu đề cột), họ cần chỗ nào thì hỏi chỗ đó mà không suy nghĩ để lường trước mọi vấn đề phát sinh (sẽ ảnh hưởng đến những dòng, cột khác).
Khi áp dụng vào File thực tế không được, thì lại hỏi tiếp. Đâu có ai rảnh mà chạy theo ba cái vụ phát sinh dài dài.
Anh phân tích chuẩn luôn.+
Các thớt hay hỏi nhỏ giọt thường bực mình tại sao tôi lại xía vào phê phán cái chuyện "đụng một chút đã hỏi". Lý luận của họ là "ngừoi ta không biết thì hỏi, không thích thì đâu ai buộc trả lời"
Xin thưa với các quý vị này:
Cái vụ hỏi nhỏ giọt chả giúp ích gì được cho ai cả, ngoài người hỏi/chủ thớt.
- Những người có vấn đề tương tự, vào xem thớt thấy vấn đề đưa ra từng chút một, họ sẽ chẳng hiểu gì gả, thôi thà mở thớt mới hỏi cho khoẻ.
- Nhũng người đưa ra bài giải cũng chả học hỏi được gì. Cốt kiếc tới lui từng chút một như vậy tuy tập luyện được tính giải quyết vấn đề tại chỗ nhưng dần sẽ tự mình mất khả năng vận dụng cái nhìn tổng thể. Cuối cùng dẫn đến thói quen viết cốt theo kiểu mì ăn liền.
Rốt lại chỉ một mình thớt giải quyết được vấn đề cấp thời của mình. Và cứ tiếp tục, phát sinh gì nữa thì hỏi tiếp.
Hoàn toàn không có ai được lợi lâu dài.
Trên phương diện diễn đàn, cái này tuy tăng số lượng bài và lượt truy cập nhưng ngược lại giảm tỷ số bài chất lượng / bài rác. Trong nhất thời sẽ tăng giá trị $ của web site nhưng trong tương lai sẽ bị các chỗ đánh giá hạ thấp.