ある部品表一覧を管理しています。
その中で、一部の頭文字から始まるコードを除外し、除外したうちの上から10番目までをコピーする作業を行いたいのですが、
最初の一部の頭文字から始まるコードを除外するために、フィルタオプションを用いてフィルタリングを行っている為、通常のトップテン抽出が行えません。
その為、CurrentRegionを用いてのコピーでは、上から10番目までをコピーという作業が行う事が出来ません。
どうにかして、可視セルの一部をコピーする事はできないでしょうか?
///// 例 /////
部品コード 数
A1 10
B1 20
C1 10
C2 20
C3 30
.
.
C100 1000
D1 10
上記で、A/B/Dから始まる品目を除外したうえで、部品コードC1~C10までをコピーしたい
No.1ベストアンサー
- 回答日時:
こんにちは。
> フィルタオプションを用いてフィルタリングを行っている為、
> 通常のトップテン抽出が行えません。
エラー処理は皆無ですけど一案です。要は、可視セルの行でループ
For Each rRow in rVisible.Rows
Next
させて、10行分(見出しを含め11行)コピーしているだけです。
ただ、下記コードではそれを rSrc という Range コレクション
にまとめてから、1回のコピーで済ませていますが。
Sub Sample()
Dim rVisible As Range
Dim rSrc As Range
Dim rRow As Range
Dim i As Long
' // フィルタ可視セル範囲
Set rVisible = ActiveSheet.AutoFilter.Range. _
SpecialCells(xlCellTypeVisible)
i = 0
For Each rRow In rVisible.Rows
i = i + 1
If rSrc Is Nothing Then
Set rSrc = rRow
Else
Set rSrc = Union(rSrc, rRow)
End If
' // 見出し行を含め行カウンタ i が11行以上でループ終了
If i >= 11 Then Exit For
Next
rSrc.Copy Destination:=Worksheets("Sheet2").Range("A1")
Set rSrc = Nothing
Set rVisible = Nothing
End Sub
フィルタオプションではAutoFilterで選択が出来ない為なのか、
>Set rVisible = ActiveSheet.AutoFilter.Range._
>SpecialCells(xlCellTypeVisible)
上記部分でエラーが出ましたが、
Set rVisible = ActiveSheet.Range("A2:B100")._
SpecialCells(xlCellTypeVisible)
上記の様に変えて、無事動かす事ができました。
RangeやFor Each文のいい勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Excel(エクセル) Excelのセル内の特定の文字列を別のセルへ抽出したいです 2 2022/07/06 16:10
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) 2つの条件が一致したら一覧へコピーしたい。 左から4番目以降のシート名にコードが入ったシートを全て、 5 2022/09/20 19:41
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
PDFの一部を切り取って別のシー...
-
塗りつぶしの色をコピーするには
-
WORDのグレー括弧って?
-
Excel 3列毎のセルを別の表に抽...
-
C+vのvは英語で何の頭文字...
-
セルに値がある行のみを抽出す...
-
【エクセル】表の中の文字だけ...
-
空白行を無視してコピーするマ...
-
EXCEL 1つ飛ばしのセル参照
-
VBAのテキストボックスに文字列...
-
オートフィルタ時に非表示にし...
-
マイナスの場合「xxxx-」...
-
コピーされたセルの文字が途中...
-
エクセルのマクロについて教え...
-
エクセル VBA・マクロ コピー ...
-
VBAで確認メッセージを表示させ...
-
エクセルで範囲中の入力判定
-
切り取りで消しちゃいました←
-
OpenOfficeのCalcでコピー出来ない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
PDFの一部を切り取って別のシー...
-
塗りつぶしの色をコピーするには
-
C+vのvは英語で何の頭文字...
-
【エクセル】表の中の文字だけ...
-
Excel 3列毎のセルを別の表に抽...
-
Excel フィルターを掛けた状態...
-
WORDのグレー括弧って?
-
セルに値がある行のみを抽出す...
-
VBAのテキストボックスに文字列...
-
エクセルでコピーしたものをコ...
-
マイナスの場合「xxxx-」...
-
エクセルでマクロにてセル色と...
-
コピーされたセルの文字が途中...
-
EXCEL 1つ飛ばしのセル参照
-
数式による空白を無視して最終...
-
コピー&貼り付けの仕方を教え...
-
エクセルVBAでコピーすると行の...
-
Wordの「背景色を消す方法」教...
-
セルから一部だけを抜き出して...
おすすめ情報