返回列表 上一主題 發帖

一份新的VBA遇到的問題

本帖最後由 GBKEE 於 2011-7-22 20:15 編輯

回復 1# play9091
  1. Sub Ex()
  2.     Dim D As Object, E As Variant
  3.     Set D = CreateObject("Scripting.Dictionary")    'Dictionary用於儲存資料關鍵字和項目對。,通常是整數或字串,可以是除陣列外的任何型態。
  4.     For Each E In Sheet1.Range("A2").CurrentRegion.Rows   'Sheet1.A2連續範圍列的集合
  5.         If E.Cells(1).Interior.ColorIndex = 3 Then        'ColorIndex = 3  紅色
  6.             If Not D.EXISTS(E.Cells(1).Value) Then Set D(E.Cells(1).Value) = E
  7.             'Not D.EXISTS(E.Cells(1).Value) 找不重複的值
  8.             'Set D(E.Cells(1).Value) = E : Dictionary.ITEMS->設定為E的整列(Range 物件)
  9.         End If
  10.     Next
  11.     For Each E In D.ITEMS
  12.         Sheet2.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, E.Columns.Count) = E.Value
  13.         'E.Columns.Count =>傳回E的整列的欄數
  14.        ' E.Copy Sheet2.Range("A" & Rows.Count).End(xlUp).Offset(1)  'copy的方法
  15.     Next
  16. End Sub
複製代碼

TOP

回復 3# play9091
這種寫法可不可以跨sheet或是跨BOOK??                爬一下文 就有啦!    請看

TOP

回復 5# play9091
是這樣嗎?
  1. Sub ttt()
  2.     Sheets("Sheet1").Range("E3") = ""
  3.     Sheets("Sheet1").Range("E4").Value = "=AND(TEXT(RIGHT(A11, 8), ""hh:mm:ss"") >= ""02:00:00"",TEXT(RIGHT(A11, 8), ""hh:mm:ss"") <= ""21:30:00"")"
  4.     Set Rng = Range("A10").CurrentRegion
  5.     Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("E3:E4"), Unique:=False
  6.     Set Rng = Rng.SpecialCells(xlCellTypeVisible)   '資料區可見的儲存格
  7.     If Rng.Count > Rng.Columns.Count Then           '有篩選到資料
  8.     'Rng.Count: 篩選到資料總數 > Rng.Columns.Count: 資料區可見儲存格的的欄位數
  9.         Rng.Copy Sheets("SheetX").[A1]              '你要的位置
  10.     End If
  11. End Sub
複製代碼

TOP




回復 7# play9091
第一個問題好像沒有完全決解  當 篩選到的資料 不是連續範圍, 時就不行哦!
  1. Rng.Copy Sheets("Sheet2").[A2] '你要的位置
  2.            Sheets("Sheet2").[A2:D2].Delete xlUp '刪除那一列的範圍
  3. 或是    Sheet2.[A2].EntireRow.Delete '整列刪除
複製代碼
      
錯誤在那裡找找看
Workbooks("X').Sheets("Y").Range("B11:D12").Copy Workbooks("Z").Sheets("G").Range("A1")

TOP

回復 9# play9091
又出錯  公式沒問題啊, 執行階段錯誤 9:  對嗎?
檢查WorkBook 是已開啟的嗎?  工 作表名稱存在嗎?

TOP

回復 11# play9091
多多利用錄製巨集,會進步的.

TOP

        靜思自在 : 修行要繫緣修心,藉事練心,隨處養心。
返回列表 上一主題