標題:
資料轉寫
[打印本頁]
作者:
man65boy
時間:
2012-4-27 07:22
標題:
資料轉寫
如何以選擇特定資料,按鈕在轉寫,麻煩各位老師們不另指教!
附檔:
作者:
GBKEE
時間:
2012-4-27 09:28
回復
1#
man65boy
Option Explicit
Sub Ex()
Dim A As Range, R As Range, Rng As Range
With Sheet1
.AutoFilterMode = False ' 取消[自動篩選]
.Range("a1").AutoFilter 5, "自取" '[自動篩選] 設定第5欄的篩選準則 = "自取"
With .UsedRange.SpecialCells(xlCellTypeVisible) '自動篩選後的資料
.Copy Sheet2.[A1] '複製資料
For Each A In .Areas 'Areas 屬性: 此集合代表多重範圍中的所有範圍。唯讀
For Each R In .Rows '範圍 的整列
If R.Row <> 1 Then '列號不是欄位的 列號
If Rng Is Nothing Then
Set Rng = R
Else
Set Rng = Union(Rng, R) 'Union 方法 定傳回兩個或多個範圍的合併範圍
End If
End If
Next
Next
End With
.AutoFilterMode = False ' 取消[自動篩選]
If Not Rng Is Nothing Then '自動篩選 有資料
Application.DisplayAlerts = False 'DisplayAlerts 屬性 Microsoft Excel 顯示特定的警告和訊息則為 True。讀/寫 Boolean。
Rng.Delete '刪除 自動篩選後的資料
Application.DisplayAlerts = True
Else '自動篩選 沒有資料
MsgBox "查烏資料"
End If
End With
End Sub
複製代碼
作者:
register313
時間:
2012-4-27 09:35
回復
1#
man65boy
Sub xx()
Dim Rng As Range, A As Range
Sheet1.[A1:E1].Copy Sheet2.[A1]
With Sheet1
For Each A In .Range(.[A2], .[A2].End(xlDown))
If A.Offset(0, 4) = "自取" Then
If Rng Is Nothing Then
Set Rng = A.Resize(1, 5)
Else
Set Rng = Union(Rng, A.Resize(1, 5))
End If
End If
Next
If Not Rng Is Nothing Then
Rng.Copy Sheet2.[A65536].End(xlUp).Offset(1, 0)
Rng.EntireRow.Delete
End If
End With
End Sub
複製代碼
作者:
man65boy
時間:
2012-4-27 22:10
回復
3#
register313
感謝2位熱心版主的回答,GBKEE老師的程式提供了,我這種初學者易懂的程式,但程式執行轉寫到sheet2時,並無法往下排列,稍點不足,不過還謝謝GBKEE老師,
感謝register313老師,提供完全解題百分百,感恩在心!小弟也要花點時間來消化2位老師的程式,謝謝。
作者:
GBKEE
時間:
2012-4-28 07:34
本帖最後由 GBKEE 於 2012-4-29 15:52 編輯
回復
4#
man65boy
並無法往下排列,稍點不足 修正了
Option Explicit
Sub Ex()
Dim A As Range, R As Range, Rng As Range
With Sheet1
.AutoFilterMode = False ' 取消[自動篩選]
.Range("a1").AutoFilter 5, "自取" '[自動篩選] 設定第5欄的篩選準則 = "自取"
Sheet2.Rows(1) = .Rows(1).Value
Set Rng = .Range("a1").CurrentRegion.Offset(1)
On Error Resume Next
Set Rng = Rng.SpecialCells(xlCellTypeVisible) '自動篩選後的資料
If Err.Number > 0 Then '沒有資料有錯誤
MsgBox "查無資料"
Else
Rng.Copy Sheet2.Cells(Rows.Count, "a").End(xlUp).Offset(1) '改在這裡複製
Rng.Delete xlShiftUp '刪除 自動篩選後的資料
End If
.AutoFilterMode = False ' 取消[自動篩選]
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)