Của mình rất nhiều cột và nhiều dòng, không giới hạn bên dưới ( ví dụ dưới 10000 dòng); file trên là mình đưa ra ví dụ cho nhẹ thôiData của bạn như nào? Nếu không nhiều cột. Có thể sử dụng chọn từng cột với những dòng khác trống rồi paste được mà
Tại phần kết quả không biết nó có quy luật gì không? chứ thấy có 3 dòng mấy cột thế kia. code rồi có khi sửa đi sửa lại àCủa mình rất nhiều cột và nhiều dòng, không giới hạn bên dưới ( ví dụ dưới 10000 dòng); file trên là mình đưa ra ví dụ cho nhẹ thôi
Mình chưa hiểu lắm, nhưng nếu như hình thì bạn thửChào anh/ chị !
em có file excel cần chuyển cột khác và đẩy dữ liệu lên trên và đổi dấu ( âm thành dương hoặc ngược lại), nhờ anh chị viết code giúp ạ, e cám ơn!
Thử code dưới đây.mình gửi lại bảng đầy đủ của mình. dữ liệu sau khi can thiệp nằm từ cột DN đến EB; kết quả mình mong muốn là bảng từ cột EF đến ET; nhưng hiện tài khi chèn qua nó bị tăng lên 1000 lần rồi
Option Explicit
Sub abcd()
Dim sArr
Dim Res()
Dim rws, cls
Dim i, j, k
With Sheet3
rws = .UsedRange.Rows.Count
sArr = .Range("DN4:EB" & rws)
End With
rws = UBound(sArr)
cls = UBound(sArr, 2)
ReDim Res(1 To rws, 1 To cls)
For j = 1 To cls
k = 1
For i = 1 To rws
If IsNumeric(sArr(i, j)) Then
Res(k, j) = sArr(i, j)
k = k + 1
End If
Next i
Next j
With Sheet3
.Range("EV4").Resize(.UsedRange.Rows.Count, cls).Clear
.Range("EV4").Resize(rws, cls) = Res
End With
End Sub
e cám ơn anh ạ!Thử code dưới đây.
Vùng điền kết quả bắt đầu từ EV4 để đối chiếu
---
code này chỉ sắp xếp số liệu, việc đổi dấu sẽ thực hiện sau
Mã:Option Explicit Sub abcd() Dim sArr Dim Res() Dim rws, cls Dim i, j, k With Sheet3 rws = .UsedRange.Rows.Count sArr = .Range("DN4:EB" & rws) End With rws = UBound(sArr) cls = UBound(sArr, 2) ReDim Res(1 To rws, 1 To cls) For j = 1 To cls k = 1 For i = 1 To rws If IsNumeric(sArr(i, j)) Then Res(k, j) = sArr(i, j) k = k + 1 End If Next i Next j With Sheet3 .Range("EV4").Resize(.UsedRange.Rows.Count, cls).Clear .Range("EV4").Resize(rws, cls) = Res End With End Sub