ขอบคุณทุกๆคนมากๆนะคะ ลองนำมาประยุกต์ใช้กับงานแล้ว เขียนโค๊ดดังนี้ค่ะ
Code: Select all
Dim col As Integer
Set a = Workbooks("FC_INPUTx.xls").Worksheets("D")
a.Cells(2, 8) = "=DAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0))"
amount_date = a.Cells(2, 8) ' amount_date เก็บค่าจำนวนวันในเดือนนี้ ประกาศไว้เป็น public ในโมดูลอื่น
col = 10
Range("J6").Select: Selection.NumberFormat = "d-mmm-yy"
ActiveCell.FormulaR1C1 = _ "=IF(COLUMNS(R[-5]C1:R[-5]C[-9])>DAY(EOMONTH(TODAY(),0)),"""",DATE(YEAR(TODAY()),MONTH(TODAY()),COLUMNS(R[-5]C1:R[-5]C[-9])))"
Do While a.Cells(6, col) <> "" 'เป็นจริง ทำ
For i = 1 To amount_date 'วนตามจำนวนวัน
Columns(col).Select: Selection.Copy 'copy
Columns(col + 1).Select: ActiveSheet.Paste 'paste
col = col + 1
Next i
If a.Cells(6, col) = "" Then Exit Do
Loop
Range("J1").Select: Application.CutCopyMode = False: ActiveCell.FormulaR1C1 = ""
Range("J6").Select
ที่ใช้วน For เพราะบางเดือนมี 30,31,28,29 วัน
จึงใช้ amount_date เก็บค่าจำนวนวันในเดือนปัจจุบัน แล้วให้วน for ตาม amount_date ค่ะ
ขอบคุณทุกคนอีกครั้งนะคะ