x.Range("c" & 200 & ":c" & 300).FormulaR1C1 = x.Range("c" & 150).FormulaR1C1
この式は 正しく番地をずらしてくれますが
x.Range("h" & 200 & ":ba" & 300).FormulaR1C1 = x.Range("h" & 150 & ":ba" & 150).FormulaR1C1
列を複数とると 番地が 飛びます(一つ置きのような)
そも、無理なんでしょうか? それとも、考え、記述にミスがある?
よろしくどうぞ
No.3ベストアンサー
- 回答日時:
横から失礼します。
kigoshiさんが提示されている画像は、HA150:BA150の値は、計算式ではなく文字列(aaa0001~aaa00045)
が設定されているのではないでしょうか。
その場合は、実行結果は、 kigoshiさんが提示されている画像の通りになります。
一方、質問者の方のシートの内容は、HA150:BA150には計算式が設定されていると推測されます。
(質問者の方が計算式か文字列かを明記していないので、正確には不明ですが・・・)
上記を確認するために、以下のような設定を行って、マクロを実行します。
A1:A300にa00001~a00300の文字列を設定する。
B1:B300にb00001~b00300の文字列を設定する。
C150に=A150を設定する。(a00150が表示される)(添付図の赤線で囲んだ箇所)
H150に=A150を設定する。(a00150が表示される)(添付図の赤線で囲んだ箇所)
I150に=B150を設定する。(b00150が表示される)(添付図の赤線で囲んだ箇所)
この状態で、
① x.Range("c" & 200 & ":c" & 300).FormulaR1C1 = x.Range("c" & 150).FormulaR1C1
② x.Range("h" & 200 & ":ba" & 300).FormulaR1C1 = x.Range("h" & 150 & ":ba" & 150).FormulaR1C1
を実行する。
①の結果は、以下のようになる。(添付図の青線で囲んだ箇所)
C200にa00200が表示される。
C201にa00201が表示される。
C202にa00202が表示される。
以降同様。(これは期待する結果である)
②の結果は、以下のようになる。(添付図の緑線で囲んだ箇所)
H200にa00200が表示される。
H201にa00202が表示される。(a00201を表示したい)
H202にa00204が表示される。(a00202を表示したい)
以降同様。(これは期待する結果でない)
I列も同じ現象が発生する。(これも期待する結果ではない)
お説の通りです。コピーは文字列でなく、セル計算式です。で、グリーンの列のようになる・・・が質問内容です。
なぜ列を複数とると、そうなるのか??です。
2列なら、一つ置き、3列なら3飛びなら、分からくないですが、どのような列数でも、一つ置き。???
仕様と言われればそれまでですが、まあ、バグですかねえ、
No.4
- 回答日時:
.FormulaR1C1(相対参照)ではなく、.Formula(絶対参照)にすれば、期待する結果が得られますが、それではだめなのでしょうか。
x.Range("h" & 200 & ":ba" & 300).Formula = x.Range("h" & 150 & ":ba" & 150).Formula
.FormulaR1C1を使用する前提での質問でしたら、無視してください。
No.2
- 回答日時:
Sub hhh()
Range("h" & 200 & ":ba" & 300).FormulaR1C1 = Range("h" & 150 & ":ba" & 150).FormulaR1C1
End Sub
このコードを実行すると図のようになりますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 CR発振回路 C1=C2=C=0.001【uF】 R1=R2=R3=16【kΩ】 R4は出力電圧が正 2 2023/05/10 19:13
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- 物理学 写真の問題について質問なのですが、解説を見る限りc1とc2の電気量は等しくないように思えます。 しか 4 2023/07/01 21:41
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- Visual Basic(VBA) エクセルファイルのデータ転記について 2 2024/02/17 02:10
- Excel(エクセル) 楽天マーケットスピード RSSでエクセルに書き出す 1 2023/09/29 22:31
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excelで、10000,20000,30000と表示されているのですが、時々10000,20000
Excel(エクセル)
-
VBA(えくせる)ってなんでメンテできない人が多いんですか?
Excel(エクセル)
-
ファイル内にある数字の出現回数カウント
Excel(エクセル)
-
-
4
Excel 連番を入力する方法
Excel(エクセル)
-
5
0.001ずつずらしたいのですが実際の値は 1.552のところは1.5519999999 のようにな
Excel(エクセル)
-
6
なぜか「Nextに対応するForがありません」
Excel(エクセル)
-
7
エクセルで相対パスの書き方を教えてください
Excel(エクセル)
-
8
Excelの空のセル
Excel(エクセル)
-
9
VBA
Excel(エクセル)
-
10
Excel表の文字の幅を狭くしたい
Excel(エクセル)
-
11
列を増やさずに、月だけの件数を求める場合
Excel(エクセル)
-
12
エクセル関数に詳しい方教えてください
Excel(エクセル)
-
13
DBCS関数とは何ぞやッ!
Excel(エクセル)
-
14
エクセルで【0.5日と1日】を表示したいのですが。。。
Excel(エクセル)
-
15
エクセルのcountifのワイルドカードについて
Excel(エクセル)
-
16
エクセルの「パスの定義」の仕方について教えてください
Excel(エクセル)
-
17
同じ型【ハイフンと数字】だけ抜き出す関数について
Excel(エクセル)
-
18
Excelのシート背景に不明な文字が表示されています。何故?
Excel(エクセル)
-
19
エクセルの気味悪い不思議
Excel(エクセル)
-
20
長期休みの関数はありますか
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
低レベルなミスの多い新人は見...
-
信じられないミスをして逃げる...
-
入社2年目でミスが続きます
-
入社2ヶ月、ミスばかり…
-
ミスして信用ないから辞めるは...
-
ミスを隠す癖。 私には、ミスを...
-
言いやすい人のミスにはキツく...
-
就職して二ヶ月少々。ミスが怖...
-
レジの操作について
-
仕事でミスをしていないか不安...
-
倉庫のピッキング作業をしてい...
-
私は怒られても心に響かないタ...
-
営業しています。 先日担当事務...
-
新人社会人です。入って3週間が...
-
真面目に仕事でミスばかりしま...
-
自分の失敗ではない時に自分の...
-
バイトを始めて2ヶ月ミスばかり...
-
仕事ができず嫌われている自分...
-
a型作業所はミスが多くスピード...
-
スシローのバイト初出勤でめち...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
低レベルなミスの多い新人は見...
-
信じられないミスをして逃げる...
-
ミスして信用ないから辞めるは...
-
入社2年目でミスが続きます
-
言いやすい人のミスにはキツく...
-
ミスを隠す癖。 私には、ミスを...
-
入社2ヶ月、ミスばかり…
-
仕事ができず嫌われている自分...
-
就職して二ヶ月少々。ミスが怖...
-
レジの操作について
-
FormulaR1C1の 相対参照式のコピー
-
真面目に仕事でミスばかりしま...
-
バイトを始めて2ヶ月ミスばかり...
-
倉庫のピッキング作業をしてい...
-
営業しています。 先日担当事務...
-
今日とあるお店で買い物をしま...
-
今日仕事休み、明日職場で怒ら...
-
初出勤なのにタイムカード を切...
-
日本語になっているのはどうい...
-
仕事が出来なさすぎて辛いです ...
おすすめ情報
自己レスですが
For i = 8 To 19
nitiasi.Range(Cells(st, i), Cells(en, i)).FormulaR1C1 = nitiasi.Range(Cells(150, i), Cells(150, i)).FormulaR1C1
Next i
とりあえず、こんな感じで済ませたのですが、なんかなあ??
仕様ですか??