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

シート”11月”の11月度実績データ(”N1083~N1183”)をシート”予測計算”のセルL4”11”の直下に11月度実績データ(”N1083~N1183”)を張り付けたいのですが、なかなか進みません。
シート”11月”のセルC1は”11”であり、別のマクロ処理にて使用しています。
作業としては、シート”11月”を開いている状態なので、11月のシートの識別はいらないと思いますが、必要であればこのセルを利用しようかと思っています。
12月のデータはシート”予測計算”の貼り付け位置が1つ右にずれていきます。来週の打ち合わせに間に合わせたいので、助けてください。。

「異なるシートにおいて、同一月のデータをコ」の質問画像

質問者からの補足コメント

  • 早々のご回答ありがとうございます。
    現在は、シート”11月”に下記マクロを作成しています。
    シート”予測計算”のL5は’11月’なので、12月となると、L6に手動変更しなければいけません。
    毎月のシートも毎月作成しているので、マクロ処理にて対応したいと思っています。
    ご協力の程よろしくお願いいたします。

    Sub 中間経費を予測計算にデータ転送()
    Range("M1083:M1449").Select
    Selection.Copy
    Sheets("予測計算").Select
    Range("L5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    End Sub

      補足日時:2021/11/28 17:33
  • No3さんのマクロ処理に若干の変更しましたが、マクロ処理後に ” #REF! ”の表示となります。
    ちょいちょいさわっているのですが、数値表示になりません。ヘルプお願いしまーす。。

    「異なるシートにおいて、同一月のデータをコ」の補足画像2
      補足日時:2021/11/28 18:13

A 回答 (4件)

こんにちは



マクロに関するご質問なのでしょうか?
以下は、仮にそうだとしての回答です。

>コピペ方法を教えてください。
シート間のコピペの場合は、シートを明示する記述方法にさえしておけば、他は変わりません。

Worksheets("コピー元").Range("範囲").Copy Destination:=Worksheets("コピー先").Range("範囲")
のような感じです。
https://docs.microsoft.com/ja-jp/office/vba/api/ …

ただし、手操作のコピペと同様なので、セルに関数式等が入っている場合は、その内容によっては計算結果がおかしなものになる可能性があります。

そのようなことを避けて、値だけをコピーするので良い場合は、
Worksheets("コピー先").Range("範囲").Value = Worksheets("コピー元").Range("範囲").Value
とすることでも済みます。

※ 結合セルなどを含む場合、(手操作でもそうですが)形式が異なるとうまくいかない可能性がありますのでご注意ください。
    • good
    • 0
この回答へのお礼

早々のご連絡ありがとうございます。
月ごとで各シートのセルの場所が変わるので、ご回答の内容では困難かと思います。補足説明しました。時間がありましたらご確認ください。
よろしくお願いいたします。

お礼日時:2021/11/28 17:39

貼り付けに際して、形式を選択して貼り付け、を選択。


選択枝の中で「数値」を選択します。
そうすればマクロ、セルないの計算式は一切無視して、表示されている数値のみが貼り付けられます。
    • good
    • 0
この回答へのお礼

早々のご連絡ありがとうございます。
他の処理もあり、マクロ処理したいと思っています。
よろしくお願いいたします。

お礼日時:2021/11/28 17:40

こんばんは。



テストはしていませんが、例えば下記の様な感じはどうでしょうか?
アクティブシート名の月の数字を取って、"予測計算"シートの列方向を
シフトさせています。 

Sub コピーのテスト()
Dim myDat As String
myDat = ActiveSheet.Name 'シート名を取得
myDat = Left(myDat, Len(myDat) - 1) '数字を取得
If IsNumeric(myDat) Then '数字として使えるか?
Range("N1083~N1183").Copy WorkSheets("予測計算").Range("A5:A105").Offset(, Val(myDat))
End If
End Sub

もし、何かしらエラーが出たら、対応して下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
とてもいい感じです。
データが転送されてきていい感じですが、エラー修正ができません。。。

お礼日時:2021/11/28 18:06

No.3の物です。



11のセルに、計算式か何か入っているのでしょうか?

この部分を
Range("N1083~N1183").Copy WorkSheets("予測計算").Range("A5:A105").Offset(, Val(myDat))

下記に変更して、どうでしょうか?
Range("N1083~N1183").Copy
WorkSheets("予測計算").select
Range("A5").Offset(, Val(myDat)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
    • good
    • 0
この回答へのお礼

完璧でした。
ありがとうございます。
勉強させていただきます。。。

お礼日時:2021/11/28 18:41

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