0
分離された範囲の値をループ以外のバリアントに入れるより良い方法はありますか?分離された範囲の値を取得するobjet
Dim vntValues As Variant
Set rg = Range("$D$3:$D$7,$D$9:$D$21")
vntValues = rg.Value
Debug.Print UBound(vntValues)
出力は5ですが、18が正しいと思います。
分離された範囲の値をループ以外のバリアントに入れるより良い方法はありますか?分離された範囲の値を取得するobjet
Dim vntValues As Variant
Set rg = Range("$D$3:$D$7,$D$9:$D$21")
vntValues = rg.Value
Debug.Print UBound(vntValues)
出力は5ですが、18が正しいと思います。
何か
Dim vntValues As Variant
Dim rng2 As Range
Set rg = Range("$D$3:$D$7,$D$9:$D$21")
For Each rng2 In rg.Areas
vntValues = rng2.Value2
Debug.Print UBound(vntValues)
Next
よう 'rg.Value'のみvntValues = rg.Areas(1).Value''に、rg' '内に、すなわち、それのデフォルト値を第一' Area'の値を返します。 'vntValues = rg.Areas(2).Value'と言うと、' UBound(vntValues) 'は13になります。 – YowE3K
' vntValues'では何をしていますか? Value = Range( "E3:E21")。Value' doesn 'は、値を移動している場合、ソースを過度に選択してターゲットをまばらに選択するとうまくいきます:Range( "D3:D7、D9:D21" tは 'D8 'を上書きします。 – Comintern
ループを使うだけです。メインコードを乱雑にしたくない場合は、関数に抽象化してください。 –