snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub PasteData()
Dim irRange As Range
Dim lngRowNum As Long
Dim lngPosition As Long
Dim lr As Long
With Worksheets("sheet3").Application
lngRowNum = .WorksheetFunction.CountIf(Range("b16:b" & Range("B65536").End(xlUp).Row), Range("c4"))
If lngRowNum = 0 Then
Sheets("sheet1").Range("c4:c8").Copy
Sheets("sheet3").Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues, Transpose:=True
Else
With Worksheets("sheet3").Application
lngPosition = .WorksheetFunction.Match(Range("c4"), Range("b16:b" & Range("b" & Rows.Count).End(xlUp).Row), 0)
Sheets("sheet1").Range("c4:c8").Copy
Sheets("sheet3").Range("B" & (15 + lngPosition)).PasteSpecial xlPasteValues, Transpose:=True
End With
End If
With Worksheets("sheet3")
lr = Range("B" & Rows.Count).End(xlUp).Row
Set irRange = Sheets("sheet3").Range("b16:f" & lr)
irRange.Sort Key1:=Sheets("sheet3").Range("b16"), Order1:=xlAscending, Header:=xlGuess
End With
End With
End Sub
ขอบคุณล่วงหน้าครับ
You do not have the required permissions to view the files attached to this post.
Sub PasteData()
Dim irRange As Range
Dim lngRowNum As Long
Dim lngPosition As Long
Dim lr As Long
With Worksheets("sheet3")
lngRowNum = Application.WorksheetFunction.CountIf(.Range("b16:b" & .Range("B65536").End(xlUp).Row), .Range("c4"))
If lngRowNum = 0 Then
Sheets("sheet1").Range("c4:c8").Copy
Sheets("sheet3").Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues, Transpose:=True
Else
With Worksheets("sheet3")
lngPosition = Application.WorksheetFunction.Match(.Range("c4"), .Range("b16:b" & .Range("b" & Rows.Count).End(xlUp).Row), 0)
Sheets("sheet1").Range("c4:c8").Copy
Sheets("sheet3").Range("B" & (15 + lngPosition)).PasteSpecial xlPasteValues, Transpose:=True
End With
End If
With Worksheets("sheet3")
lr = .Range("B" & Rows.Count).End(xlUp).Row
Set irRange = Sheets("sheet3").Range("b16:f" & lr)
irRange.Sort Key1:=Sheets("sheet3").Range("b16"), Order1:=xlAscending, Header:=xlGuess
End With
End With
End Sub
สังเกตภายใต้ With Worksheets("Sheet3") จะมีการใช้ .Range ไม่ใช่ Range
Sub PasteData()
Dim irRange As Range
Dim lngRowNum As Long
Dim lngPosition As Long
Dim lr As Long
With Worksheets("sheet3")
lngRowNum = Application.WorksheetFunction.CountIf( _
.Range("b16:b" & .Range("B65536").End(xlUp).Row), Sheets("Sheet1").Range("c4"))
If lngRowNum = 0 Then
Sheets("sheet1").Range("c4:c8").Copy
Sheets("sheet3").Range("B65536").End(xlUp).Offset(1, 0) _
.PasteSpecial xlPasteValues, Transpose:=True
Else
With Worksheets("sheet3")
lngPosition = Application.WorksheetFunction.Match( _
Sheets("Sheet1").Range("c4"), .Range("b16:b" & .Range("b" & Rows.Count) _
.End(xlUp).Row), 0)
Sheets("sheet1").Range("c4:c8").Copy
Sheets("sheet3").Range("B" & (15 + lngPosition)) _
.PasteSpecial xlPasteValues, Transpose:=True
End With
End If
With Worksheets("sheet3")
lr = .Range("B" & Rows.Count).End(xlUp).Row
Set irRange = Sheets("sheet3").Range("b16:f" & lr)
irRange.Sort Key1:=Sheets("sheet3").Range("b16"), _
Order1:=xlAscending, Header:=xlGuess
End With
End With
End Sub