ค่าตำแหน่งสุดท้ายของแถวใน VBA
Posted: Wed Nov 02, 2016 11:24 am
สวัสดีค่ะอาจารย์
ดิฉันมีเรื่องสงสัย คือ ดิฉันมีไฟล์ตามไฟล์แนบอยู่หลายไฟล์แต่ละครั้งก็ใช้ macro เดิมรันแต่ปรากฎว่าบางไฟล์ที่รันออกมาไม่ copy สูตรลงไปถึงแถวสุดท้าย (ตัวแปร lastrow) ทำอย่างไรถึงจะทำให้สามารถ copy สูตรถึงแถวสุดท้ายได้จริงคะ ตอนนี้ต้องมาเช็คทุกไฟล์ว่าทำครบหรือไม่ทุกครั้ง
ไฟล์ที่แนบมาตอนแรกรันไม่ถึงแถวสุดท้าย copy ถึงแถวที่ 185 ก็หยุด ไม่เข้าใจค่ะว่าเป็นเพราะอะไร
รบกวนแนะนำด้วยค่ะ
ขอบคุณค่ะ
p_d
ดิฉันมีเรื่องสงสัย คือ ดิฉันมีไฟล์ตามไฟล์แนบอยู่หลายไฟล์แต่ละครั้งก็ใช้ macro เดิมรันแต่ปรากฎว่าบางไฟล์ที่รันออกมาไม่ copy สูตรลงไปถึงแถวสุดท้าย (ตัวแปร lastrow) ทำอย่างไรถึงจะทำให้สามารถ copy สูตรถึงแถวสุดท้ายได้จริงคะ ตอนนี้ต้องมาเช็คทุกไฟล์ว่าทำครบหรือไม่ทุกครั้ง
ไฟล์ที่แนบมาตอนแรกรันไม่ถึงแถวสุดท้าย copy ถึงแถวที่ 185 ก็หยุด ไม่เข้าใจค่ะว่าเป็นเพราะอะไร
รบกวนแนะนำด้วยค่ะ
ขอบคุณค่ะ
p_d
Code: Select all
Sub VlookupToPivot()
Application.ScreenUpdating = False
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Sheets(1).Select
Range("H2").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC1,INDIRECT(""'""&R1C&""'!$H$2:$I$5000""),2,FALSE),"""")"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:S2"), Type:=xlFillDefault
Range("H2:S2").Select
Selection.AutoFill Destination:=Range("H2:S" & lastrow)
Range("H2").Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("H1").Select
End Sub