CopyプロパティをValueプロパティにしたい
まず、
Copyメソッドです。プロパティではないです。
メソッド=命令です。
翻ってプロパティ=属性です。
属性といってもイメージしにくいでしょうが、
対象物を形作る要素です。
セルの値の場合、
引き出しの中の中身と考えるとわかるでしょうか?
で、コードについてですが。
1)VBAで使うために用意された言葉を、変数名に使ってはいけません。(今回の場合は、Count)
これが今回の混乱の原因ではないでしょうか?
行番号を入れる変数ならば、iとかixRowとかでどうでしょうか?(その辺はお好みで)
2)操作するセルが存在するシートを明示しましょう。
どのシートを操作したいかがコードを読んでわかりません。
(これも混乱の原因でしょう)
3)操作したい対象を明示してコードに書くだけで、いいです。
あえてアクティブにしたり選択したりさせる操作を命令する必要はないです。
4)With句が上手く使えてません。
「.(ピリオド)」を書き忘れてませんか?
5)セル範囲を特定するために、あえて行番号のみを変数に取り出さなくても、
Rangeプロパティには、セルその物で指定が可能になっていますので、
余分な手順ではないでしょうか?
これらの点に注意してもう一度コードを見直してみてはいかがでしょうか?
下記にこんな感じで書きたかったのかなぁというサンプルを貼ってみます。
(ピリオドの位置に注目して読んで、ご自分のコードと比較してみてください。)
VBA
1Sub 完成2()
2 Dim op As String
3
4 op = Application.GetOpenFilename()
5 If op = "False" Then Exit Sub
6
7 With Workbooks.Open(op)
8 With .Worksheets(1)
9 .Range(.Range("A2"), .Cells(.Rows.count, "A").End(xlUp)).Resize(, 2).Copy
10 End With
11
12 With ThisWorkbook
13 .Cells(.Rows.count, "D").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
14 End With
15 .Close
16 End With
17End Sub
ここで、Valueプロパティを使って値の転記をしたいならば、
VBA
1Sub test2()
2 Dim vFName As Variant
3 Dim wbkFrom As Workbook
4 Dim rngFrom As Range
5 Dim rngTo As Range
6
7 vFName = Application.GetOpenFilename()
8 If v = False Then Exit Sub
9
10 Set wbkFrom = Workbooks.Open(vFName)
11 With wbkFrom.Worksheets(1)
12 Set rngFrom = .Range(.Cells(2, "A"), .Cells(.Rows.count, "A").End(xlUp)).Resize(, 2)
13 End With
14 With ThisWorkbook.Worksheets(1)
15 Set rngTo = .Cells(.Rows.count, "D").End(xlUp) _
16 .Offset(1).Resize(rngFrom.Rows.count, rngFrom.Columns.count)
17 End With
18
19 rngTo.Value = rngFrom.Value
20
21 wbkFrom.Close
22End Sub
こんな感じになるのかなぁと思います。
操作対象をどのブックのどのシートのどのセル範囲なのかを明確にしてから、
操作の命令をしたらよりよいと思いました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。