Code record Macro chạy không đúng kết quả mong muốn.

Liên hệ QC

hoanglocphat

Thành viên thường trực
Tham gia
27/1/13
Bài viết
258
Được thích
30
Chào các bạn
Tôi có record macro xong, sau đó chạy code thì nó không ra kết quả đúng
Tôi mô tả công việc tôi cần làm
Tại Sheet 1:
Cột H, tôi muốn xóa các ô có thời gian, sau đó lấp đầy các ô trống theo dữ liệu của ô trên có dữ liệu
Cách thức tôi làm tay như sau:
1/ Filter cột H -> Date Filter -> Custom Filter ... -> is after: 26/12/18
2/ Chọn H5:H31 bấm Delete
3/ Menu Data -> clear
4/ Bấm F5 -> Blanks
5/ Nhập =H4 -> bấm Ctrl+Enter
Từ cách thức làm tay tôi có record macro. Sau khi record xong tôi chạy code đó thì nó không ra kết quả như mong muốn
Nhờ các bạn chỗ sai, code bên dưới

Sub Macro1()
ActiveSheet.Range("$H$3:$I$32").AutoFilter Field:=1, Criteria1:= _
">26/12/2018", Operator:=xlAnd
Range("H5:H31").Select
Selection.ClearContents
ActiveSheet.ShowAllData
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub

Xin cảm ơn
 

File đính kèm

Chào các bạn
Tôi có record macro xong, sau đó chạy code thì nó không ra kết quả đúng
Tôi mô tả công việc tôi cần làm
Tại Sheet 1:
Cột H, tôi muốn xóa các ô có thời gian, sau đó lấp đầy các ô trống theo dữ liệu của ô trên có dữ liệu
Cách thức tôi làm tay như sau:
1/ Filter cột H -> Date Filter -> Custom Filter ... -> is after: 26/12/18
2/ Chọn H5:H31 bấm Delete
3/ Menu Data -> clear
4/ Bấm F5 -> Blanks
5/ Nhập =H4 -> bấm Ctrl+Enter
Từ cách thức làm tay tôi có record macro. Sau khi record xong tôi chạy code đó thì nó không ra kết quả như mong muốn
Nhờ các bạn chỗ sai, code bên dưới

Sub Macro1()
ActiveSheet.Range("$H$3:$I$32").AutoFilter Field:=1, Criteria1:= _
">26/12/2018", Operator:=xlAnd
Range("H5:H31").Select
Selection.ClearContents
ActiveSheet.ShowAllData
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub

Xin cảm ơn
Bạn chạy code này xem thế nào nhé.
Mã:
Sub chuyendulieu()
Dim i As Long, lr As Long
Dim arr, dk As String
With Sheet1
   lr = .Range("I" & Rows.Count).End(xlUp).Row
   arr = .Range("H4:i" & lr).Value
   For i = 1 To UBound(arr, 1)
       If Len(arr(i, 2)) = 0 Then dk = arr(i, 1)
       arr(i, 1) = dk
   Next i
   .Range("K4:L" & lr).Value = arr
End With
End Sub
 
Upvote 0
Code:
Mã:
Sub Macro2()

With Range("H5:H32")
  .AutoFilter Field:=1, Criteria1:=Array("="), Operator:=xlFilterValues, Criteria2:=Array(0, "12/27/2018")
  .FormulaR1C1 = "=R[-1]C"
  .AutoFilter
End With
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom