soledad_90
Thành viên thường trực




- Tham gia
- 12/1/10
- Bài viết
- 253
- Được thích
- 47
- Giới tính
- Nam
Lại là tôi đây. Bạn thử file. hy vọng đúng ýView attachment 273355
Em chào diễn đàn !.
Hiện em đang có một file với dữ liệu chuỗi không theo quy luật, và cần tách các ký trong chuỗi ra một cột riêng.
Em có gửi file đính kèm và có kết quả nhập tay mong muốn hiển thị. Mong nhận được sự giúp đỡ từ diễn đàn ạ.
Em cảm xin cảm ơn .
Kết quả đúng rồi ạ.Lại là tôi đây. Bạn thử file. hy vọng đúng ý
P/S: có thể code này chỉ đúng với liệu bài này
Thầy con chưa hiểu 1 số cái trong code, mong thầy giải đáp để con được học hỏi:Lại là tôi đây. Bạn thử file. hy vọng đúng ý
P/S: có thể code này chỉ đúng với liệu bài này
Có lẽ điều này là không cần thiết1. Tại sao mình cần chuyển dấu " " thành ","?
Khả năng là bác ấy muốn dùng cho khúc dưới nhưng quên sửa (vì nếu giả sử chuỗi không có mã Q..Q.. thì vòng for J vẫn lặp, và J vẫn có giá trị có thể =3 hoặc >3, thay T cho J ở chỗ đó hợp lý hơn, vì T sẽ = 0. Nhưng nếu vậy, đầu vòng for phải cài T=0 trước)2. Biến t dùng để làm gì?
If j = 3 Then KQ(i, 2) = S(1) & " " & S(2)
If j > 3 Then KQ(i, 2) = S(1) & " " & S(2) & " " & S(3)
Temp = Application.Substitute(Trim(Arr(i, 1)), " ", ",")
Mình không học cơ bản nên chỉ có thể giải thích nôm na theo ý hiểu của bản thân là như thế này:Thầy con chưa hiểu 1 số cái trong code, mong thầy giải đáp để con được học hỏi:
1. Tại sao mình cần chuyển dấu " " thành ","?
2. Biến t dùng để làm gì?
Cảm ơn thầy.
Cảm ơn bạn. Tôi không học cơ bản nên nhiều khi cứ làm theo kiểu học lóm thôi.Có lẽ điều này là không cần thiết
Khả năng là bác ấy muốn dùng cho khúc dưới nhưng quên sửa (vì nếu giả sử chuỗi không có mã Q..Q.. thì vòng for J vẫn lặp, và J vẫn có giá trị có thể =3 hoặc >3, thay T cho J ở chỗ đó hợp lý hơn, vì T sẽ = 0. Nhưng nếu vậy, đầu vòng for phải cài T=0 trước)
--> Khúc dưới là khúc này:
Mã:If j = 3 Then KQ(i, 2) = S(1) & " " & S(2) If j > 3 Then KQ(i, 2) = S(1) & " " & S(2) & " " & S(3)
Bác @HUONGHCKT :
Trim của VBA có sự khác biệt so với của worksheet, do vậy khúc này:
1/ Nên dùng application.Trim để loại bỏ khoảng trắng ở giữa các ký tự nếu có nhiều khoảng trắng liền kềMã:Temp = Application.Substitute(Trim(Arr(i, 1)), " ", ",")
2/ Phần substitute theo em nên thay bằng replace thuần VBA sẽ hay hơn
3/ Không cần thay thế thành dấu phẩy mà để nguyên split luôn
Bác xem lại code, nếu dữ liệu ô B23, B24 không dư khoảng trắng thì kết quả chưa đúng!
Có thể là đây - xem cả bài #53 để hiểu.Hôm trước có đọc của 1 anh nào đó(rất có uy tín trên diễn đàn này) nó về sự khác nhau giữa cách dùng Có Application và Application.WorksFunciton,
Cảm ơn Anh nhiều! Tôi đã có thêm được 1 kiến thức bổ ích.Có thể là đây - xem cả bài #53 để hiểu.
![]()
Tìm Subtotal bằng VBA
Chào anh chị GPE! Em có một bảng dữ liệu như này: Em muốn tính tổng các cột từ Sum1 đến Sum5 theo cột Mã số, kết quả như thế này: Nếu dữ liệu ít có thể dùng lệnh Subtotal của Excel cũng ra, nhưng vì file của em dữ liệu quá lớn (hơn 95.000 dòng), nên khi em dùng lệnh subtotal có sẵn của...www.giaiphapexcel.com
View attachment 273674