snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub nonsale()
Dim lc As Long, Rc As Long
Dim tb As Workbook
Set tb = ThisWorkbook
Workbooks.Open Filename:=Application.GetOpenFilename("Excel files(*.xlsx*),*.xlsx*", _
Title:="Please select Non Sale files.", MultiSelect:=False)
If TypeName(strPath) = "Boolean" Then Exit Sub
Sheets(1).Select
Rows("1:1").Select
Selection.AutoFilter
lc = Range("B" & Rows.Count).End(xlUp).Row
Rc = tb.Sheets("Title").Range("D4").Value
Range("B1").Select
ActiveSheet.Range("A1:AZ" & lc).AutoFilter Field:=2, Criteria1:=Rc
Application.Goto Reference:="OFFSET(R1C18,1,,COUNTA(C18)-1,3)"
Selection.Copy
tb.Activate
Sheets("Book1").Activate
With tb.Sheets("book1")
.Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Sheets(1).Select
Application.CutCopyMode = False
Application.Goto Reference:="OFFSET(R1C29,1,,COUNTA(C29)-1,)"
Selection.Copy
tb.Activate
Worksheets("Book1").Activate
With tb.Sheets("book1")
.Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Worksheets("Title").Activate
Range("a1").Activate
End Sub
Sub nonsale()
Dim lc As Long, Rc As Long
Dim tb As Workbook, pb As Workbook
Set tb = ThisWorkbook
Workbooks.Open Filename:=Application.GetOpenFilename("Excel files(*.xlsx*),*.xlsx*", _
Title:="Please select Non Sale files.", MultiSelect:=False)
Set pb = ThisWorkbook
Sheets(1).Select
Rows("1:1").Select
Selection.AutoFilter
lc = Range("B" & Rows.Count).End(xlUp).Row
Rc = tb.Sheets("Title").Range("D4").Value
Range("B1").Select
ActiveSheet.Range("A1:AZ" & lc).AutoFilter Field:=2, Criteria1:=Rc
Application.Goto Reference:="OFFSET(R1C18,1,,COUNTA(C18)-1,3)"
Selection.Copy
tb.Activate
Sheets("Book1").Activate
With tb.Sheets("book1")
.Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
pb.Activate
Sheets(1).Select
Application.Goto Reference:="OFFSET(R1C29,1,,COUNTA(C18)-1,1)"
Selection.Copy
tb.Activate
Sheets("Book1").Activate
With tb.Sheets("book1")
.Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Worksheets("Title").Activate
Range("a1").Activate
End Sub
parakorn wrote: Wed Dec 19, 2018 11:51 am
เนื่องจากมีข้อมูลของ non sale day ใน column ที่ 29 ที่ต้อง Copy มาด้วย แต่มีปัญหาในการประกาศตัวแปร แต่ตัวแปรไม่ทำงานครับ
Sub nonsale()
Dim lc As Long, Rc As Long
Dim tb As Workbook, pb As Workbook
Set tb = ThisWorkbook
Workbooks.Open Filename:=Application.GetOpenFilename("Excel files(*.xlsx*),*.xlsx*", _
Title:="Please select Non Sale files.", MultiSelect:=False)
Set pb = ThisWorkbook
Sheets(1).Select
Rows("1:1").Select
Selection.AutoFilter
lc = Range("B" & Rows.Count).End(xlUp).Row
Rc = tb.Sheets("Title").Range("D4").Value
Range("B1").Select
ActiveSheet.Range("A1:AZ" & lc).AutoFilter Field:=2, Criteria1:=Rc
Application.Goto Reference:="OFFSET(R1C18,1,,COUNTA(C18)-1,3)"
Selection.Copy
tb.Activate
Sheets("Book1").Activate
With tb.Sheets("book1")
.Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
pb.Activate
Sheets(1).Select
Application.Goto Reference:="OFFSET(R1C29,1,,COUNTA(C18)-1,1)"
Selection.Copy
tb.Activate
Sheets("Book1").Activate
With tb.Sheets("book1")
.Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Worksheets("Title").Activate
Range("a1").Activate
End Sub
Sub nonsale()
Dim lc As Long, Rc As Long
Dim tb As Workbook
Set tb = ThisWorkbook
Workbooks.Open Filename:=Application.GetOpenFilename("Excel files(*.xlsx*),*.xlsx*", _
Title:="Please select Non Sale files.", MultiSelect:=False)
If TypeName(strPath) = "Boolean" Then Exit Sub
Sheets(1).Select
Rows("1:1").Select
Selection.AutoFilter
lc = Range("B" & Rows.Count).End(xlUp).Row
Rc = tb.Sheets("Title").Range("D4").Value
Range("B1").Select
ActiveSheet.Range("A1:AZ" & lc).AutoFilter Field:=2, Criteria1:=Rc
Application.Goto Reference:="OFFSET(R1C18,1,,COUNTA(C18)-1,3),OFFSET(R1C28,1,,COUNTA(C28)-1,1)"
Selection.Copy
tb.Activate
Sheets("Book1").Activate
With tb.Sheets("book1")
.Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Sheets(1).Select
Application.CutCopyMode = False
Worksheets("Title").Activate
Range("a1").Activate
End Sub