Chuyển đổi dữ liệu

  • Thread starter Thread starter ZzNHCzZ
  • Ngày gửi Ngày gửi
Liên hệ QC

ZzNHCzZ

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
8/5/08
Bài viết
166
Được thích
44
Nghề nghiệp
Hàng Không
Em có đoạn code không biết đã sai chổ nào mong các anh chị gở rối giúp em.
Em có gửi file Dữ liệu để anh chỉ dể nhìn


Sub a()
Dim i As Long, j As Long
Dim DT As Worksheet, KQ As Worksheet
Set DT = DT
Set KQ = KQ
i = 2
For j = 2 To DT
i = i + 1
KQ.Range("A" & i).Value = DT.Range("A" & j).Value
KQ.Range("B" & i).Value = DT.Range("B" & j).Value
If DT.Range("C" & j).Value = "VND" Then
KQ.Range("B" & j).Value = DT.Range("C" & j).Value
Else
KQ.Range("C" & i).Value = DT.Range("C" & j).Value

End If

Next j
End Sub


thân!
 
Lần chỉnh sửa cuối:
Em có đoạn code không biết đã sai chổ nào mong các anh chị gở rối giúp em.
Em có gửi file Dữ liệu để anh chỉ dể nhìn


Sub a()
Dim i As Long, j As Long
Dim DT As Worksheet, KQ As Worksheet
Set DT = DT
Set KQ = KQ
i = 2
For j = 2 To DT
i = i + 1
KQ.Range("A" & i).Value = DT.Range("A" & j).Value
KQ.Range("B" & i).Value = DT.Range("B" & j).Value
If DT.Range("C" & j).Value = "VND" Then
KQ.Range("B" & j).Value = DT.Range("C" & j).Value
Else
KQ.Range("C" & i).Value = DT.Range("C" & j).Value

End If

Next j
End Sub

Biến DT bạn khai báo là WORKSHEET, như vậy thì khi bạn viết
thì làm sao excel hiểu và chạy được.
 
Upvote 0
thì làm sao excel hiểu và chạy được.
Thế thì phải làm như thế nào vậy anh? Sao anh không nói luôn?
Mong anh sửa code hoàn chỉnh và chạy được giúp em

Cám ơn anh nhiều

Thân!
 
Upvote 0
Thế thì phải làm như thế nào vậy anh? Sao anh không nói luôn?
Mong anh sửa code hoàn chỉnh và chạy được giúp em

Cám ơn anh nhiều

Thân!

HiHi! Bạn có thể nói rõ ý đồ của đoạn code bạn viết không!? Mình nghĩ có thể sẽ có giải pháp ngắn gọn hơn!
 
Lần chỉnh sửa cuối:
Upvote 0
Thế thì phải làm như thế nào vậy anh? Sao anh không nói luôn?
Mong anh sửa code hoàn chỉnh và chạy được giúp em

Cám ơn anh nhiều

Thân!
Xin tham gia 1 code
PHP:
Sub LayKQ()
Dim i As Long, endR As Integer
Sheets("DT").Select
Range("A2:D1000").ClearContents
endR = Sheets("KQ").Range("A65000").End(xlUp).Row
Range("A2:B" & endR).Value = Sheets("KQ").Range("A2:B" & endR).Value
For i = 2 To endR
    If Sheets("KQ").Range("C" & i).Value > 0 Then
        Range("C" & i).Value = Sheets("KQ").Range("C" & i).Value
        Range("D" & i).Value = "VND"
    Else
        Range("D" & i).Value = "USD"
        Range("C" & i).Value = Sheets("KQ").Range("D" & i).Value
    End If
Next


End Sub
 
Upvote 0
HiHi! Bạn có thể nói rõ ý đồ của đoạn code bạn viết không!? Mình nghĩ có thể sẽ có giải pháp ngắn gọn hơn!
Em có ý đồ gì đâu? Điều em cần em đã nói rõ và có file đi kèm. Anh xem và sữa code gúp em với.

Anh THUNGHI oi! Code anh chạy xóa hết Dữ liệu luôn --> Ko cho ra kết quả
Anh chỉnh lại giúp em nhé

Thân!
 
Upvote 0
Khứ hồi

PHP:
Option Explicit
Sub FromDT()
Dim iJ As Long, iW As Long, bCol As Byte

Sheets("KQ").Select:       iJ = [a65432].End(xlUp).Row + 9
Range("A2:D" & iJ).Clear
Sheets("DT").Select:       iJ = [a65432].End(xlUp).Row
Range("A2:B" & iJ).Copy Destination:=Sheets("KQ").[a2]
For iW = 2 To iJ
   bCol = IIf(Cells(iW, 4) = "USD", 4, 3)
   Sheets("KQ").Cells(iW, bCol) = Cells(iW, 3)
Next iW
End Sub

'* *      * *      * *      * *      * *      * *      * *      * *      '

Sub FromKQ()
Dim iJ As Long, iW As Long

Sheets("DT").Select:       iJ = [a65432].End(xlUp).Row + 9
Range("A2:D" & iJ).Clear
Sheets("KQ").Select:       iJ = [a65432].End(xlUp).Row
Range("A2:B" & iJ).Copy Destination:=Sheets("DT").[a2]
For iW = 2 To iJ
   If Cells(iW, 3) = "" Then
      Sheets("DT").Cells(iW, 4) = "USD"
      Sheets("DT").Cells(iW, 3) = Cells(iW, 4)
   Else
      Sheets("DT").Cells(iW, 4) = "VND"
      Sheets("DT").Cells(iW, 3) = Cells(iW, 3)
   End If
Next iW
End Sub
 
Upvote 0
Em có ý đồ gì đâu? Điều em cần em đã nói rõ và có file đi kèm. Anh xem và sữa code gúp em với.
Bạn nghiên cứu đoạn code này xem. Cũng là 1 cách.
PHP:
Sub a()
Dim MaxDTRow, Zj As Long
MaxDTRow = Sheets("DT").Range("A65000").End(xlUp).Row
Sheets("KQ").Range("A2:D1000").ClearContents
    For Zj = 2 To MaxDTRow
    Sheets("KQ").Cells(Zj, 1) = Sheets("DT").Cells(Zj, 1)
    Sheets("KQ").Cells(Zj, 2) = Sheets("DT").Cells(Zj, 2)
    If Sheets("DT").Cells(Zj, 4) = "VND" Then
        Sheets("KQ").Cells(Zj, 3) = Sheets("DT").Cells(Zj, 3)
    Else
        Sheets("KQ").Cells(Zj, 4) = Sheets("DT").Cells(Zj, 3)
    End If
    Next Zj
End Sub
 
Upvote 0
Cám ơn mọi người nhiều lắm.
Bây giờ nếu mình muốn trang trí thì viết như thế nào nữa ạh?
Kẻ ô, chữ đậm, chỉnh format.

Em định thu macro nhưng nó chỉ có tác dụng với số dòng dữ liệu ban đầu. Nếu thêm dữ liệu nữa thì vùng mới ko được trang trí.

Em muốn trang trí như file dưới đây.

Thanks!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom