2017-02-22 16 views
0

カナダ政府のウェブサイトでオンラインで入手可能な気象データのクリーニングに取り組んでいます。問題はシンプルに聞こえるが、残念ながらVBAを介して私が望むものを得ることができなかった。VBA:1つの値をコピーし、一定回数行に貼り付けてから、繰り返します。

なぜ私に問題がありますか?

データを消去するには、天気と気分の関係があるかどうかを確認する必要があります。

データはセクションで分割されます(つまり、ステーションごとに1年間1セクション)。データの各セクションには、毎日の気象情報(365行、うるう年366)が表形式で格納されています。ステーション名はそのデータにはどこにも記載されていません。各セクションの上部にある1つのセルにのみ記載されています。だから私はヘッダーセクションからステーション名をコピーし、すべての日の行の下にそれを貼り付けたいと思う。

例: 天気データを毎日監視しているカナダに8000のステーションがある場合、8000セクションのテーブルがあり、各セクションには毎日の気象データがあります。ここで

はステップで私のクエリです:AC4720):

1)4694回(AC27の範囲のセルの一つの値(セルB1)をコピーし、行を、それを下に貼り付けます。 4694は10年以上のセクションヘッダー、空白をカバーしています。 2)余分な行を1行下に移動します(AC4721を空白のままにします)。 3)もう一度プロセスを開始します。 この関数は、ファイルの最後までプロセスを繰り返します。単純な言語で

式:このセルに、今AC4722で式相対ある

セル空白の後に継続

は.... B4696、繰り返し工程(1の値をコピーしなければなりません)およびクエリのステップ(2)を実行する。

この方法では、次のAC9417は、このセルに対して、数式でB9391の値をコピーし、クエリの手順(1)と手順(2)を繰り返します。

関係位置(AC27、B1)、(AC4722、B4696)との差、(AC9417、B9391)は、常に26

です助けてください。

答えて

0

入力に値がすべてを行う必要がある:

Range("AC27:AC4720") = Range("B1") 

各行を反復処理する必要はありません。

最も難しい部分は、コピーする必要がある範囲です。あなたのファイルがどのように見えるかによって、多くの方法が可能です。

+0

ありがとうございました。 これはセルの範囲です。このパターンは8000+ステーションで実行されます (ステーション、B、AC)(1,1,27)(2,4696,4722)(3,9391,9417) 14086,14112)(5,18781,18807)(6,23476,23502)(7,28171,28197)...... \t \t \t \t \t \t \t がループのようなシリーズをコーディングすることが可能ですか何か? –

+0

新しいステーションを開始するための識別子が必要です。いつも「駅名:」などのような列がありますか?その列を検索できます。最初に発見されたステーションと2番目に見つかったステーションの間の範囲を調べ、その範囲をステーション名と同じに設定します。 – ClintB

関連する問題