[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『構文エラーとでるのですが』(困ったちゃん)
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 >
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.