アプリ版:「スタンプのみでお礼する」機能のリリースについて

次のコードでセルI13の値を入力できましたが、
'----------------------
'Dim i As Integer
'For i = 2 To Worksheets.Count - 6
'With Worksheets(i)
'.Range("I13") = Worksheets(1).Range("I13").Value
'End With
'Next
セルの値でなく関数を入力しようとして次のコードに修正したらエラーになりました。どこがいけないのでしょうか。

Dim i As Integer
For i = 2 To Worksheets.Count - 6
With Worksheets(i)
.Range("I13").Formula = "=" & Worksheets(1).Name & "!I13"
End With
Next

A 回答 (4件)

Worksheets(1)のシート名はどうなってますか?


このシート名に特殊文字が入っているとエラーになる場合があります。

.Range("I13").Formula = "='" & Worksheets(1).Name & "'!I13"

のようにしてみてはどうですか。
    • good
    • 0
この回答へのお礼

できました!!! ありがとうございます。

お礼日時:2009/10/13 05:20

>#1のお礼の


>そしてWorksheets(2)以降のセル("I13")には、
「Worksheets(1).Range("I13")の値を入れなさいという関数」を入れたいのです。よろしくお願いします。
の意味は?
>Worksheets(2)以降の・・
Worksheets(2)、Worksheets(3)・・シートタブの(右端から6つ除いての)シートまで
>「Worksheets(1).Range("I13")の値を入れなさいという
「入れなさい」というより「入れる」でよいのでしょう?
ーー
こんな常識的なことがどうして質問になるのかな
For i = 2 To Worksheets.Count - 6
Worksheets(i).Range("I13").Value= Worksheets(1).Range("I13").Value
Next i
質問のコード例では関数式・数式を設定しているが、質問では「値」といっている。おかしい。Worksheets(1)のセルでは数式で値を決めていても、その他のセルから「値」を参照する場合は、Worksheets(1)のそのセルの値(Value)を代入すればよい。
何か理解不足の迷いがあるのではないか?

この回答への補足

申し訳ありません。私の意図する事が出来ないので、悩んでいます。
ちなみに、他の人から教えていただいたコードを実行しました。
Dim i As Integer
For i = 2 To Worksheets.Count - 6
With Worksheets(i)
.Range("I13").Formula = Worksheets(1).Range("I13").Formula
End With
Next
1)そしてWorksheets(1)の("I13")に10/12と入力しました。
2)すぐに、次のWorksheets(2)を見ました。10/12に変わっていませんでした。以前入力した日付でした。
3)保存してもう一度見ると、すべて10/12に変わっていて見た目は正確でした。
でも私は、Worksheets(1)の("I13")に10/12と入力した時点で、即座に
Worksheets(2)以降のセル("I13")が10/12に変わるようにしたいです。
現状はいったん保存しないと、変わらない状態なんです。

補足日時:2009/10/13 00:09
    • good
    • 0

>次のコードに修正したらエラーになりました。

どこがいけないのでしょうか。

どこでどんなエラーになるのでしょうか?

Range("I13").Formula = "=" & Worksheets(1).Name & "!I13"
の部分だけをチェックすると「=Sheet1!I13」と言う式がちゃんと入るので、エラー部分に付いての記載がないので何処でエラーになるのかが解りません。

この回答への補足

エラーは
アプリケーション定義またはオブジェクト定義エラー
とでます。

補足日時:2009/10/12 22:42
    • good
    • 0

こう言う事なのかな?



Dim i As Integer
For i = 2 To Worksheets.Count - 6
With Worksheets(i)
.Range("I13").Formula = Worksheets(1).Range("I13").Formula
End With
Next


Worksheets(1).Range("I13")の数式を他のシートのRange("I13")へコピーしたいんですよね

以上、参考まで

この回答への補足

説明が稚拙ですいませんでした。
Worksheets(1).Range("I13")には10/12のように日付を手入力します。
そしてWorksheets(2)以降のセル("I13")には、
「Worksheets(1).Range("I13")の値を入れなさいという関数」を入れたいのです。よろしくお願いします。

補足日時:2009/10/12 22:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!