[[20050510134616]] 『各シートへの入力について』(はち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『各シートへの入力について』(はち)

それぞれのsheetに、次のような関数を入力します(入力するセルはそれぞれA1)。

sheet1   =IF(sheet50!A1="","",sheet50!A1)

sheet2   =IF(sheet50!B1="","",sheet50!B1)

sheet3   =IF(sheet50!C1="","",sheet50!C1)

  ・
 
  ・
 
  ・

これをsheet40までつくりたいのですが、これと同じ作業が多々あるのでかなり大変です。関数を入力するシートを変えると自動的に関数内のセルの値を変えるような方法はありませんでしょうか? よろしくお願いします。


 おはようございます!以下の方法はいかがでしょうか?
1) Ctrlを押しながらSheet1から40をクリック。(めんどくさかったら、Sheet1を
クリックして、CtrlとShftを押しながらPage Down連打でも大丈夫です)
2) Sheet1をクリックしてA1をクリックして、以下の数式を貼り付ける。
=IF(Sheet50!$A$1="","",OFFSET(Sheet50!$A$1,,MID(CELL("FILENAME",A1),FIND("]",CELL("FILENAME",A1))+6,100)-1,))
3) Enterを押す。
→すべてのSheetに数式が入って、Sheet50の該当セルを参照してますでしょうか?

 「関数を入力するシートを替えると自動的に関数内のセルの値を変える」という意味が
ちょっと分からなかったので、はずしてるかもです。。。。(dude)

 自己レスです。IFの条件式もA1,B1と増えてくんですね、見落としてました(^^;)

 こっちの式に変更してください。。。ってながすぎ(涙)。

 =IF(OFFSET(Sheet50!A1,,MID(CELL("FILENAME",A1),FIND("]",CELL("FILENAME",A1))
+6,100)-1,)="","",OFFSET(Sheet50!A1,,MID(CELL("FILENAME",A1),FIND("]",CELL
("FILENAME",A1))+6,100)-1,))

 駄作なので他の方のアイデアも是非みてみたいところです。(dude)


 おはようございます。
Sheetが左から右に順番に並んでいるとして
メニューバーのファイルの隣のエクセルのマークを右クリック→コードを表示させて
そこに貼り付けます。左から順番にクリックしていってください。
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index < 41 Then
    Sh.Range("A1").FormulaR1C1 = _
    "=IF(Sheet50!RC[" & Sh.Index - 1 & "]="""","""",Sheet50!RC[" & Sh.Index - 1 & "])"
End If
End Sub
(SoulMan)


dudeさん、SoulManさん、ありがとうございました。

夕方頃に試してまたご報告せせていただきます。

(はち)


Soul Manさんのご説明どうりでできそうです。ありがとうございました。

これがマクロというのでしょうか?

初めての試みだったので少しずつ勉強していきたいと思います。


 こちらに統合しました。
 (kazu)


『各シートへの入力2』(はち)

昨日同じ題名の質問に対して的確なお答えをいただいたのですが、もう少し変更する必要がでてきました。大変申し訳ないのですが、質問を変えますのでもう一度よろしくお願いします。

それぞれのsheetに、次のような関数を入力します(入力するセルはそれぞれC5)。

sheet1   =IF(sheet50!C3="","",sheet50!C3)

sheet2   =IF(sheet50!D3="","",sheet50!D3)

sheet3   =IF(sheet50!E3="","",sheet50!E3)

  ・
 
  ・
 
  ・

これをsheet40までつくりたいのですが、これと同じ作業が多々あるのでかなり大変です。関数を入力するシートを変えると自動的に関数内のセルの値を変えるような方法はありませんでしょうか? よろしくお願いします。

セルの値が微妙に変えてあります。同じような質問で恐縮ですがよろしくお願いします。


 続きで質問された方がいいですよ。
 20050510134616『各シートへの入力について』(はち)
昨日のとあわせて、こんな感じでどうでしょうか?
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index < 41 Then
    Sh.Range("A1").FormulaR1C1 = _
    "=IF(Sheet50!RC[" & Sh.Index - 1 & "]="""","""",Sheet50!RC[" & Sh.Index - 1 & "])"
    Sh.Range("C5").FormulaR1C1 = _
    "=IF(Sheet50!R[-2]C[" & Sh.Index - 1 & "]="""","""",Sheet50!R[-2]C[" & Sh.Index - 1 & "])"
End If
End Sub
(SoulMan)


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

掲示板の使い方も含めて参考にさせていただきます。
(はち)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.