返回列表 上一主題 發帖

[發問] 以巨集抓取指定顏色資料

〔項次.品牌.數量〕的文字顏色不一致,以〔數量〕為主:
  1. Sub 匯入()
  2. Dim R&, xArea As Range, xR As Range, xE(1 To 2) As Range, i%, C%, N%
  3. With Sheets("匯整")
  4.     .UsedRange.Offset(1, 0).EntireRow.Delete
  5.      Set xE(1) = .[A2]: Set xE(2) = .[D2]
  6. End With

  7. With Sheets("庫存").UsedRange
  8.      R = .Rows.Count - 22: If R <= 0 Then Exit Sub
  9.      Set xArea = .Rows(23).Resize(R)
  10. End With

  11. For i = 3 To xArea.Columns.Count Step 4
  12.     For Each xR In xArea.Columns(i).Cells
  13.         N = 0: C = xR.Font.ColorIndex
  14.         If C = 5 Then N = 1
  15.         If C = 10 Then N = 2
  16.         If xR = "" Or N = 0 Then GoTo 101
  17.         R = xR.MergeArea.Rows.Count
  18.         xR(1, 0).Resize(R, 2).Copy xE(N)
  19.         Set xE(N) = xE(N)(R + 1)
  20. 101: Next
  21. Next i
  22. End Sub
複製代碼
 
Xl0000024.rar (17.08 KB)
 
 

TOP

回復 3# msmplay


1. 套用上公司庫存表格式,無法抓取所有綠字庫存
_我這裡執行沒問題,是否office版本問題(我是2000),這我無法解決
 
2. 非合併儲存格無法抓取,例如:「庫存」R37:S38非合併儲存格,R38就沒有抓到,因為「匯整」A76只抓到一個TEST
_表格合併不規則,很難判斷,只能以〔數量〕為主,所以同一群組的數量,必須先〔合併〕

3. 是否可設定抓取資料範圍,因為只需抓取「庫存」A23:W122範圍資料,A23以上顏色資料無需抓取
_程式已限制只匯入第22列以下的資料

最好有其他大大用office 2010改一下程式!!我僅能做到這樣!

TOP

回復 5# msmplay

選定一個儲存格, 執行以下取得文字色碼
Sub TEST()
MsgBox ActiveCell.Font.ColorIndex
End Sub

TOP

回復 8# msmplay


多做一次就可以:
Xl0000024-V1.rar (21.87 KB)

TOP

        靜思自在 : 一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
返回列表 上一主題