戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
先日の別シートへ転記する質問で再質問です

    [194741] 先日の別シートへ転記する質問で再質問です-

    ■親トピック/記事引用/メール受信=ON■

    □投稿者/ C3PO -(2022/02/11(16:43))
    □U R L/ http://ttps://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=194728&rev=0
      先日2/8に個人別シートを印刷用シートに指定の期間のデータを抽出して転記し、最終行の下に合計を入れるものをお教えいただきました。(半平太様により)
      半平太様がいらっしゃればうれしいですが…
      
      
      表を作っている過程で新たに個人別シートのF2の数字を印刷用シートのデータのある最終行の下のEのセルに入れるようにしたいと思っています。
      
      自分なりにコードを見て、思い通りのセルにデータが入るようになりました。
      しかし問題がありまして質問に来ました。
      
      そのEのセルというのが、表示形式で"09:00"のような時間表示にしています。
      そのため、例えば1500といれてもその値に表示されません。
      これを解決するためにはどうすればよいでしょうか。
      一旦E8以下の書式をクリアすればよいのかなと思うのですが自分ではわかりませんでした。
      ここをお教えいただけないでしょうか。
      ※下の
      If iOut > 7 Then
                  WsPrn.Cells(iOut + 1, "A") = "合計"
                  WsPrn.Cells(iOut + 1, "E").Value = Worksheets(NM).Range("F2") 'ここを追加しました
                  WsPrn.Cells(iOut + 1, "F").FormulaR1C1 = "=SUM(R8C6:R[-1]C)"
              End If
          End With
      の部分です。
      
      
      
      Sub Shift()
          Dim WsPrn As Worksheet
          Dim BaseD, Dys, NM
          Dim i As Long, iOut As Long
          
          Set WsPrn = Worksheets("印刷用")
          
          Application.ScreenUpdating = False
          
          With WsPrn
              BaseD = .Range("B1:D1")
              NM = .Range("F5")
              .Range("A8").Resize(.UsedRange.Rows.Count, 6).ClearContents
          End With
          
          With Worksheets(NM)
              Dys = .Range("A4").Resize(.UsedRange.Rows.Count).Value
              iOut = 7
              
              For i = 1 To UBound(Dys)
                  If BaseD(1, 1) <= Dys(i, 1) And Dys(i, 1) <= BaseD(1, 3) Then
                      iOut = iOut + 1
                      WsPrn.Cells(iOut, 1).Resize(1, 6) = .Cells(i + 3, 1).Resize(1, 6).Value
                  End If
              Next i
              
              If iOut > 7 Then
                  WsPrn.Cells(iOut + 1, "A") = "合計"
                  WsPrn.Cells(iOut + 1, "E").Value = Worksheets(NM).Range("F2") 'ここを追加しました
                  WsPrn.Cells(iOut + 1, "F").FormulaR1C1 = "=SUM(R8C6:R[-1]C)"
              End If
          End With
          
          Application.ScreenUpdating = True
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [194742] Re[1]: 先日の別シートへ転記する質問で再質問です-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2022/02/11(19:56))
    □U R L/
      > WsPrn.Cells(iOut + 1, "E").Value = Worksheets(NM).Range("F2") 'ここを追加しました
      
      そのセルだけの問題ですよね?
      セルの書式を設定すればいいんじゃないですか?
      
      ※もし、個人別シートのRange("F2")と同じ書式にするなら・・
       WsPrn.Cells(iOut + 1, "E").NumberFormatLocal = Worksheets(NM).Range("F2").NumberFormatLocal 
      を追記する。
      
      あと、値だけ移しているコードも、
      元データの書式を継承しながら貼り付けた方が方がいいかもしれないです。
      
      >WsPrn.Cells(iOut, 1).Resize(1, 6) = .Cells(i + 3, 1).Resize(1, 6).Value 
      
       (2行書きに変える例)
         .Cells(i + 3, 1).Resize(1, 6).Copy
         WsPrn.Cells(iOut, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
       




    [194743] Re[2]: 先日の別シートへ転記する質問で再質問です-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ C3PO -(2022/02/12(10:16))
    □U R L/ http://ttps

      半平様、ありがとうございました。
      付け加えさせていただきすごく快適になりました!

      値だけ移しているコードも元データの書式を継承しながら貼り付けるようにした方が、仰るように良かったです。

      助けていただきありがとうございます!



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G