複数の列を選択します。Excel VBA - 複数の列を連続して選択しない
例:私はselect column a, b, d, e, g, h
に私が試したとしますType mismatch
:
Columns("A, B, D, E, G, H").select
私はエラーにメッセージが表示されます。
複数の列を選択します。Excel VBA - 複数の列を連続して選択しない
例:私はselect column a, b, d, e, g, h
に私が試したとしますType mismatch
:
Columns("A, B, D, E, G, H").select
私はエラーにメッセージが表示されます。
Range("A:B,D:E,G:H").Select
は
編集ノートを助けることができる:私はちょうどあなたが別の列の順序を使用していました、私は
タイトルは非連続であり、あなたのメソッドは 'C'と' H'の間のすべてのカラムを選択しますが、これはOPが後であるとは思いません。 –
うん、私は更新した、ごめんな誤読:) – HRgiger
@HRgigerどのようにそれらのセルの値を配列に取得できますか? このクエリは可能ですか? someArray = Range( "B4:B9、S4:S9")。値 –
に私の頭の上のいくつかのことを私の答えを更新しました。私はWAプロジェクトに取り組んで
方法1.
Application.Union(Range("a1"), Range("b1"), Range("d1"), Range("e1"), Range("g1"), Range("h1")).EntireColumn.Select
方法2
Range("a1,b1,d1,e1,g1,h1").EntireColumn.Select
方法3
Application.Union(Columns("a"), Columns("b"), Columns("d"), Columns("e"), Columns("g"), Columns("h")).Select
**メソッド3 **は、列全体ではなく定義済みの名前付き範囲を扱うための最適なソリューションです。 'Application.Union。(range1、range2、range3).select'は素晴らしいです。 私はこのソリューション(コピーと貼り合わせのため)は、範囲が同じサイズであることを必要とすると考えています。 –
このコンセプトについてしばらくの間立ち往生していました。@GSergの方法1に似たような回答がありました。基本的には、2つの数式範囲(いくつかの変数を使用)を定義し、Union概念を使用しました。私の例は、私が取り組んでいるより大きいプロジェクトですが、下のコードの部分は、定義された範囲と変数と組み合わせてUnion概念を使用する方法を知らない人を助けることができればうれしいです。私はコード全体を含んでいませんでした。なぜなら、この時点でかなり長い時間がかかるからです。
初公開
は、その後、私は最後に、私は他の二つのFormulaRanges
Public r As Long
Public c As Long
Public d As Long
Public FormulaRange3 As Range
Public FormulaRange4 As Range
Public SelectRanges As Range
With Sheet8
c = pvt.DataBodyRange.Columns.Count + 1
d = 3
r = .Cells(.Rows.Count, 1).End(xlUp).Row
Set FormulaRange3 = .Range(.Cells(d, c + 2), .Cells(r - 1, c + 2))
FormulaRange3.NumberFormat = "0"
Set FormulaRange4 = .Range(.Cells(d, c + c + 2), .Cells(r - 1, c + c + 2))
FormulaRange4.NumberFormat = "0"
Set SelectRanges = Union(FormulaRange3, FormulaRange4)
を設定/定義されるように私はすべての変数を宣言しました
コードのいくつかは私にとっては少し複雑です。これは、2つの不連続な列DとHの中で使用されている行だけを選択する非常に単純なコードです。列の長さが等しくないため、列の長さが等しい場合はより柔軟です。
あなたが最も可能性の高い4 = D列と8 =列H
Dim dlastRow As Long
Dim hlastRow As Long
dlastRow = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
hlastRow = ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row
Range("D2:D" & dlastRow & ",H2:H" & hlastRow).Select
はあなたが役に立つことを願っ推測として - 私はDID、またはそれは爆弾れるように、第二のカラムの前にカンマていることを忘れないでください! !
記録されたマクロとして。
range("A:A, B:B, D:D, E:E, G:G, H:H").select
操作するセルを選択する必要はほとんどありません。実際に何をしようとしていますか? – Reafidy
Reafidyは正しいです。 BTW HL8、あなたはマクロを記録できることを知っていますか?) –