Sao lại đi hỏi cái này vậy trờiChào anh chị! em có cột C dữ liệu, copy và paste sang cột E các dữ liệu tách ra 1 dòng như hình bên dưới. nhờ a chị giúp đỡ. Em xin cảm ơn
View attachment 201663
Bạn thửChào anh chị! em có cột C dữ liệu, copy và paste sang cột E các dữ liệu tách ra 1 dòng như hình bên dưới. nhờ a chị giúp đỡ. Em xin cảm ơn
View attachment 201663
Tại C17, bạn gõ công thức =C2+0.5, fill xuống dưới --> sort lại cột C tăng dần --> copy qua cột E --> sử dụng Special cells để chọn các ô có công thức --> nhấn Delete.Chào anh chị! em có cột C dữ liệu, copy và paste sang cột E các dữ liệu tách ra 1 dòng như hình bên dưới. nhờ a chị giúp đỡ. Em xin cảm ơn
View attachment 201663
Kết quả không như mong đợi rồi ạ! mình muốn copy vào nó tách luôn ra. file mình test copy vào cột C hoặc cột E ko thấy táchBạn thử
mình muốn không phải nguyên là số, có thể là text hoặc 1 dãy số không theo azTại C17, bạn gõ công thức =C2+0.5, fill xuống dưới --> sort lại cột C tăng dần --> copy qua cột E --> sử dụng Special cells để chọn các ô có công thức --> nhấn Delete.
Có nghĩa bạn muốn copy hết dữ liệu cột C vào cột E thì dữ liệu tự cách nhau 1 dòng chứ không phải nhập liệu từ C sang E?Kết quả không như mong đợi rồi ạ! mình muốn copy vào nó tách luôn ra. file mình test copy vào cột C hoặc cột E ko thấy tách
Bài đã được tự động gộp:
mình muốn không phải nguyên là số, có thể là text hoặc 1 dãy số không theo az
Sub đây:mình muốn không phải nguyên là số, có thể là text hoặc 1 dãy số không theo az
Public Sub s_Gpe()
Dim sArr(), dArr(), I As Long, K As Long, R As Long
sArr = Range("C2", Range("C2").End(xlDown)).Value
R = UBound(sArr): K = -1
ReDim dArr(1 To R * 2, 1 To 1)
For I = 1 To R
K = K + 2
dArr(K, 1) = sArr(I, 1)
Next I
Range("E2").Resize(K) = dArr
End Sub
Trong dữ liệu thực tế của bạn có cột STT không? Nếu có thì theo cột đó mà tách, ngược lại thì thêm cột phụ.mình muốn không phải nguyên là số, có thể là text hoặc 1 dãy số không theo az
Lúc nữa sẽ hỏi là em muốn áp dụng cho nguyên một bảng dữ liệu cơ.Sub đây:
PHP:Public Sub s_Gpe() Dim sArr(), dArr(), I As Long, K As Long, R As Long sArr = Range("C2", Range("C2").End(xlDown)).Value R = UBound(sArr): K = -1 ReDim dArr(1 To R * 2, 1 To 1) For I = 1 To R K = K + 2 dArr(K, 1) = sArr(I, 1) Next I Range("E2").Resize(K) = dArr End Sub
Trước khi hỏi thì nên lường trước mọi vấn đề sảy ra.Chào anh chị! em có cột C dữ liệu, copy và paste sang cột E các dữ liệu tách ra 1 dòng như hình bên dưới. nhờ a chị giúp đỡ. Em xin cảm ơn
View attachment 201663
Chào anh chị! em có cột C dữ liệu, copy và paste sang cột E các dữ liệu tách ra 1 dòng như hình bên dưới. nhờ a chị giúp đỡ. Em xin cảm ơn
View attachment 201663
Giống ý tưởng của em ở trênTạo 1 cột phụ và gõ 1, 3, 5... đến 29
Phía dưới gõ tiếp 2, 4, 6... đến 30
Quét chọn 2 cột và sort tăng dần theo cột phụ
View attachment 201677
Bài 11 tôi nêu rõ nhưng không thấy bạn ý kiến gì?Chào anh chị! em có cột C dữ liệu, copy và paste sang cột E các dữ liệu tách ra 1 dòng như hình bên dưới. nhờ a chị giúp đỡ. Em xin cảm ơn
View attachment 201663
Sub Copy_Insert()
Dim Dong As Integer
Dim SoDongInsert
Dim Cot As Integer
Dim i As Integer
Dim j As Integer
Dong = 2
SoDongInsert = Sheet1.[A2].Value + 1
Cot = Sheet1.[B2].Value
j = 0
Sheet1.Range("C2", Range("C2").End(xlDown)).Select
For i = 0 To 1000 Step SoDongInsert
Sheet1.Cells(Dong + i, Cot + 3).Value = ActiveCell.Offset(j, 0).Value
j = j + 1
Next i
End Sub
Cách này hợp với mong muốn của em. Anh chỉnh dùm lại hộ em chútSub đây:
PHP:Public Sub s_Gpe() Dim sArr(), dArr(), I As Long, K As Long, R As Long sArr = Range("C2", Range("C2").End(xlDown)).Value R = UBound(sArr): K = -1 ReDim dArr(1 To R * 2, 1 To 1) For I = 1 To R K = K + 2 dArr(K, 1) = sArr(I, 1) Next I Range("E2").Resize(K) = dArr End Sub
Thế là công quả của tất cả mọi người đều theo gió bay rùi. Có mỗi cái của anh " Vẹt nhỏ" là khả thi. Khả thi bởi trước câu hỏi kiều này thì đừng gây thơ mà trả lời cụ thể.Không để vị trí động bất kỳ à anh, em muốn copy thì dữ liệu đã lưu rồi paste đến 1 vị trí bất kỳ
Cách này dùng cũng được, em cảm ơn ạBạn nhập công thức
E2=IF(ISODD(ROW()-ROW($E$2)),"",OFFSET($C$2,(ROW()-ROW($E$2))/2,))
fill xuống.
Hoặc cách 2: copy từ cột C sang E, tạo thêm 1 cột phụ số thứ tự F2:F16, copy F2:F16 xuống F17 rồi sort E2:F31 theo cột F
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 ạ.Tạo 1 cột phụ và gõ 1, 3, 5... đến 29
Phía dưới gõ tiếp 2, 4, 6... đến 30
Quét chọn 2 cột và sort tăng dần theo cột phụ
View attachment 201677
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 theoGiống ý tưởng của em ở trên![]()
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ềuBài 11 tôi nêu rõ nhưng không thấy bạn ý kiến gì?
Nên tôi làm thí cho bạn, việc còn lại là tùy cơ ứng biến. Cách dùng:
- Tại A2 muốn Insert bao nhiêu dòng thì gõ con số vào đó.
- Tại B2 muốn di chuyển (tính từ cột C) sang phải bao nhiêu cột thì gõ con số vào đó.
Mã:Sub Copy_Insert() Dim Dong As Integer Dim SoDongInsert Dim Cot As Integer Dim i As Integer Dim j As Integer Dong = 2 SoDongInsert = Sheet1.[A2].Value + 1 Cot = Sheet1.[B2].Value j = 0 Sheet1.Range("C2", Range("C2").End(xlDown)).Select For i = 0 To 1000 Step SoDongInsert Sheet1.Cells(Dong + i, Cot + 3).Value = ActiveCell.Offset(j, 0).Value j = j + 1 Next i End Sub
chỗ này em không biết diễn tả thế nào!Hiểu chết liền.
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.