Trộn 02 file số liệu theo thứ tự xen kẽ ! (1 người xem)

Liên hệ QC

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

Loan Châu

Thành viên hoạt động
Tham gia
17/6/17
Bài viết
136
Được thích
39
Giới tính
Nữ
Kính gởi quý anh chị !
Hiện em có khó khan trong công việc của em. em rất muốn quý anh chị bớt chút thời gian quý báu giúp cho em với.
Kho khăn của em là em có 02 file số liệu theo thứ tự:
File 1: Số lieu theo thứ tự A1, A2,.... An
File 2: Số lieu theo thứ tự B1,B2,...Bn
File kết quả em muốn trộn thành A1,B1,A2,B2,....An,Bn
Chi tiếc em đã ghi rõ trong file đính kèm.
Em rất mong quý anh chị giúp đỡ cho em.
Em cảm ơn trước nhiều!
Chúc quý anh chị luôn vui khỏe mỗi ngày!
Trân trọng,
em Loan Châu
 

File đính kèm

Kính gởi quý anh chị !
Hiện em có khó khan trong công việc của em. em rất muốn quý anh chị bớt chút thời gian quý báu giúp cho em với.
Kho khăn của em là em có 02 file số liệu theo thứ tự:
File 1: Số lieu theo thứ tự A1, A2,.... An
File 2: Số lieu theo thứ tự B1,B2,...Bn
File kết quả em muốn trộn thành A1,B1,A2,B2,....An,Bn
Chi tiếc em đã ghi rõ trong file đính kèm.
Em rất mong quý anh chị giúp đỡ cho em.
Em cảm ơn trước nhiều!
Chúc quý anh chị luôn vui khỏe mỗi ngày!
Trân trọng,
em Loan Châu
Thử code
Mã:
Sub TronData()
  Dim dArr1(), dArr2(), Arr()
  Dim sR1 As Long, sR2 As Long, n As Long, k As Long, i As Long, j As Byte
  dArr1 = Sheets("Nguon1").Range("B1", Sheets("Nguon1").Range("E" & Rows.Count).End(xlUp)).Value
  dArr2 = Sheets("Nguon2").Range("B1", Sheets("Nguon2").Range("E" & Rows.Count).End(xlUp)).Value
  sR1 = UBound(dArr1)
  sR2 = UBound(dArr2)
  If sR1 > sR2 Then n = sR1 Else n = sR2
  ReDim Arr(1 To sR1 + sR2, 1 To 5)
  For i = 1 To n
    If i <= sR1 Then
      k = k + 1
      Arr(k, 1) = k
      For j = 1 To 4
        Arr(k, j + 1) = dArr1(i, j)
      Next j
    End If
    If i <= sR2 Then
      k = k + 1
      Arr(k, 1) = k
      For j = 1 To 4
        Arr(k, j + 1) = dArr2(i, j)
      Next j
    End If
  Next i
  Sheets("Ketqua").Range("A1").Resize(k, 5) = Arr
End Sub
 
Upvote 0
Thử code
Mã:
Sub TronData()
  Dim dArr1(), dArr2(), Arr()
  Dim sR1 As Long, sR2 As Long, n As Long, k As Long, i As Long, j As Byte
  dArr1 = Sheets("Nguon1").Range("B1", Sheets("Nguon1").Range("E" & Rows.Count).End(xlUp)).Value
  dArr2 = Sheets("Nguon2").Range("B1", Sheets("Nguon2").Range("E" & Rows.Count).End(xlUp)).Value
  sR1 = UBound(dArr1)
  sR2 = UBound(dArr2)
  If sR1 > sR2 Then n = sR1 Else n = sR2
  ReDim Arr(1 To sR1 + sR2, 1 To 5)
  For i = 1 To n
    If i <= sR1 Then
      k = k + 1
      Arr(k, 1) = k
      For j = 1 To 4
        Arr(k, j + 1) = dArr1(i, j)
      Next j
    End If
    If i <= sR2 Then
      k = k + 1
      Arr(k, 1) = k
      For j = 1 To 4
        Arr(k, j + 1) = dArr2(i, j)
      Next j
    End If
  Next i
  Sheets("Ketqua").Range("A1").Resize(k, 5) = Arr
End Sub

Chào bạn HieuCD !
Trước hết mình rất cảm ơn sự nhiệt tình của bạn, code của bạn chạy rất đúng ý mình.
Nhân đây cho mình hỏi hai dòng code sau có ý nghĩa gì bạn nhé !
sR1 = UBound(dArr1) : có nghĩa là gì bạn
sR2 = UBound(dArr2)
If sR1 > sR2 Then n = sR1 Else n = sR2
ReDim Arr(1 To sR1 + sR2, 1 To 5)
Chúc bạn nhiều sức khỏe !
 
Upvote 0
Chào bạn HieuCD !
Trước hết mình rất cảm ơn sự nhiệt tình của bạn, code của bạn chạy rất đúng ý mình.
Nhân đây cho mình hỏi hai dòng code sau có ý nghĩa gì bạn nhé !
sR1 = UBound(dArr1) : có nghĩa là gì bạn
sR2 = UBound(dArr2)
If sR1 > sR2 Then n = sR1 Else n = sR2
ReDim Arr(1 To sR1 + sR2, 1 To 5)
Chúc bạn nhiều sức khỏe !
sR1 = UBound(dArr1) là số dòng của sheet Nguon1
sR2 = UBound(dArr2) là số dòng của sheet Nguon2
If sR1 > sR2 Then n = sR1 Else n = sR2: n là số dòng lớn nhất của sR1 và sR2, làm chuẩn cho vòng For, đề phòng trường hợp 2 sheet nguồn có số dòng khác nhau
ReDim Arr(1 To sR1 + sR2, 1 To 5) tạo mảng lưu kết quả, với số dòng là sR1+sR2, và số cột là 5
 
Upvote 0
sR1 = UBound(dArr1) là số dòng của sheet Nguon1
sR2 = UBound(dArr2) là số dòng của sheet Nguon2
If sR1 > sR2 Then n = sR1 Else n = sR2: n là số dòng lớn nhất của sR1 và sR2, làm chuẩn cho vòng For, đề phòng trường hợp 2 sheet nguồn có số dòng khác nhau
ReDim Arr(1 To sR1 + sR2, 1 To 5) tạo mảng lưu kết quả, với số dòng là sR1+sR2, và số cột là 5
Mình cảm ơn bạn nhiều nhé ! bạn giải thích mình cũng hiểu được ít ít rồi. Không biết khi nào mình mới viết được code như bạn.huhu
Chúc bạn sang tuần mới nhiều may mắn nhé!
Trân trọng !
 
Upvote 0
Cái này gặp tôi thì làm thủ công:
- Copy cả 2 nguồn qua ketqua
- Đặt ở cột F, công thức =LEFT(E1,1), fill đều xuống
- Sort theo cột A và F
- Xóa cột F
- Đăt lại số cột A
 
Upvote 0
Cái này gặp tôi thì làm thủ công:
- Copy cả 2 nguồn qua ketqua
- Đặt ở cột F, công thức =LEFT(E1,1), fill đều xuống
- Sort theo cột A và F
- Xóa cột F
- Đăt lại số cột A
em cảm ơn anh VetMini đã hướng dẫn cho em them một cách nữa.
Hiện em có them có khăn mong anh giúp cho.
đó là có hàng nghìn file .dat (tương tự .TXT dung notepad để mở lên). em gởi kèm file và khó khăn em nêu rõ trong file rồi.
em cảm ơn anh nhiều trước nhé !
 

File đính kèm

Upvote 0
Bạn mở một thớt khác và hỏi mọi ngừoi. Nếu bạn hỏi mà chỉ nêu tên tôi thì không đúng với tinh thần chia sẻ ở diễn đàn, ngừoi khác sẽ ngại giúp.
 
Upvote 0
Bạn mở một thớt khác và hỏi mọi ngừoi. Nếu bạn hỏi mà chỉ nêu tên tôi thì không đúng với tinh thần chia sẻ ở diễn đàn, ngừoi khác sẽ ngại giúp.
dạ em mở chủ đề khác rồi, mở nhiều chủ đề quá nên em ngại ngại anh Vet à, em cảm ơn anh nhiều nhé! chúc anh tuần mới nhiều niềm vui !
 
Upvote 0
Chả có gì phải ngại cả:
1. vấn đề khác thì thớt khác. Đó là lẽ tự nhiên.
2. biết cách hỏi cũng là một kỹ năng sống. Kỹ năng này gồm 2 phần:
(a) biết cách dùng lời lẽ nhã nhặn để gây thiện cảm ngừoi đọc - rất tiếc là diễn đàn này không chú trọng điều này cho nên nhiều ngừoi lên đây hỏi đã vài chục bài rồi mà vẫn còn thói ăn nói xóc óc.
(b) biết cách phân tích và trình bày vấn đề của mình rõ ràng, không gây hiểu lầm.
 
Upvote 0
Web KT

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

Back
Top Bottom