[[20220120134009]] 『構文エラーとでるのですが』(困ったちゃん) ページの最後に飛ぶ

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

 

『構文エラーとでるのですが』(困ったちゃん)

Sub 値複写上下指定()

    Sheets("出金・入金票データ").Select
    i = Cells(Rows.Count, "h").End(xlUp).Row + 1
    n = Cells(Rows.Count, "b").End(xlUp).Row + 1
    Range("H2").Select
    Selection.Copy
    Range(H" & i.H" & n).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub
'

繰り返しなおしてみたのですがうまくいきません。どうしたら
いいのでしょうか

< 使用 Excel:Excel2007、使用 OS:unknown >


いや無理でしょ
全角と半角英数字も無視しているし。
(無理) 2022/01/20(木) 14:05

エラーの出た個所と、エラー内容を読んでください。
読んでもわからなければ、上記2つを提示してください。
(あH) 2022/01/20(木) 15:18

■1
>構文エラーとでる
 Range(H" & i.H" & n)
        ↓
 Range("H" & i & ":H" & n)

「""」で囲むべき部分が間違ってるうえに、「:」と[.]を書き間違っているからです。

■2
VBAの世界では基本的にシートやセル(オブジェクトと言います)をきちんと明示すればいちいちアクティブにしたり選択したりする必要はありません。

■3
既に指摘がありますが、Excel君の忖度でなんとかなっちゃいますが、 "h"、"b"は【半角大文字】にされたほうがスマートでしょう。

■4
一旦貼り付けてから、再度値貼付をしなおしていますが、コピーして値貼付をすれば1度で済みます。

■5
PasteSpecialで既定値もわざわざ指定しています。ダメではありませんが必要の無いものは省略されたほうがスマートでしょう。

■6
ということを踏まえるとこんな感じではないでしょうか?

    Option Explicit

    Sub 値複写上下指定_整理()
        Dim i As Long, n As Long

        'ブレークポイントの代わり
        With Sheets("出金・入金票データ")
            i = .Cells(.Rows.Count, "H").End(xlUp).Row + 1
            n = .Cells(.Rows.Count, "B").End(xlUp).Row + 1

            .Range("H2").Copy
            .Range("H" & i & ":H" & n).PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
        End With
    End Sub

(もこな2 ) 2022/01/20(木) 17:04


コメント返信:

[ 一覧(最新更新順) ]


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