- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2010-12-14 22:45
| 只看該作者
因為你的附件看不出你真正要抓的資料是那一列? (Priority1、Priority2、Priority3 還是 Vendor?)
故程式中直接當作你是要抓 Title 那一列, 你只要變更抓資料的列號即可抓取相對應列中的上述資料了.
以這個例子來說其實只要先取得 Max、Min 與 Middle 的開頭欄號,
再依據表格陸續抓取個別資料的個數搭配起來就可以了.
Sub main()
Dim iMax%, iMin%, iMid%, iColumn%, iRow%
Dim iNum%, iI%
Dim vDatabase, vOutput
Set vDatabase = Sheets("DATABASE")
Set vOutput = Sheets("OUTPUT")
iMax = 182
iColumn = iMax
iRow = 70
With vDatabase
While Left(.Cells(1, iColumn), 3) = "Max"
iColumn = iColumn + 1
Wend
iMin = iColumn
While Left(.Cells(1, iColumn), 3) = "Min"
iColumn = iColumn + 1
Wend
iMid = iColumn
End With
iColumn = 3
With vOutput
For iNum = 9 To 12
For iI = 0 To .Cells(2, iNum) - 1
.Cells(iRow, iColumn) = vDatabase.Cells(1, iMax)
iMax = iMax + 1
iColumn = iColumn + 1
Next iI
For iI = 0 To .Cells(3, iNum) - 1
.Cells(iRow, iColumn) = vDatabase.Cells(1, iMin)
iMin = iMin + 1
iColumn = iColumn + 1
Next iI
For iI = 0 To .Cells(4, iNum) - 1
.Cells(iRow, iColumn) = vDatabase.Cells(1, iMid)
iMid = iMid + 1
iColumn = iColumn + 1
Next iI
Next iNum
End With
End Sub |
|