นี่คือแมโครที่ควรทำในสิ่งที่คุณต้องการ มัน:
- แจ้งจำนวนกองทุน
- สมมติว่าตารางข้อมูลเริ่มต้นขึ้น
A1
- พิมพ์บน "Sheet2" ในคอลัมน์
A
ผ่านC
- ออกถ้ามันเจอเซลล์ว่างใน
date
คอลัมน์
หมายเหตุ: หากไม่มี "Sheet2" อยู่แมโครจะล้มเหลวดังนั้นให้สร้างมันขึ้นมา นอกจากนี้คุณจะต้องใส่ส่วนหัวลงใน "Sheet2" และปรับรูปแบบเซลล์สำหรับวันที่และจำนวนใน "Sheet2"
ปรับได้ตามต้องการ
Sub wolfeline()
Dim c As Range
Dim k As Integer
Dim x As Integer
Dim y As Integer
Dim WScurr As Worksheet
Dim WStarg As Worksheet
'Set current and target WS
'//Note: target WS must exist already
Set WScurr = ActiveSheet
Set WStarg = Sheets("Sheet2")
'k=2 so we start on row 2, below the headers you've put, adjust as needed
k = 2
'count the range of dates
y = [counta(A:A)]
'Ask user to input number of funds
x = InputBox("Number of Funds?")
'Feel free to define range("A:A") to your actual range e.g. range("A2:A100")
For Each c In WScurr.Range("A2:A" & y)
If c.Value = "" Then Exit Sub
' "to 3" indicates there are 3 funds, adjust as needed
For i = 1 To x
If c.Offset(, i) <> "" Then
'we're printing this in columns K, L and M, adjust as needed
WStarg.Cells(k, "A") = c
WStarg.Cells(k, "B") = Cells(1, c.Offset(, i).Column)
WStarg.Cells(k, "C") = c.Offset(, i)
k = k + 1
End If
Next
Next
End Sub