いつも参考にさせていただいております。質問ですが、
1行目から35行目までをコピーし、次に貼り付ける場所を計算後コピーしたものをそのセルに貼り付けようとしています。VBAで作成したものを使用したのですが止まってしまいました。どんなことが原因なのでしょうか。
よろしくお願い致します。
.Row("1:35").Copy '元になる書式のコピー
t = 35 * (zz - 1) + 1
page = t & ":" & t
.Rows(page).Paste 'ここでプロパティまたはメソッドをサポートしてい
'ませんとエラーメッセージがでます
z = t + 3
space_cell = "i" & z & ":" & "j" & z
'space_cellは入力するセルの値
.Range(space_cell).Value = space(zz)
Rows プロパティで返って来る値は Range オブジェクトですが
Range オブジェクトに Paste メソッドは存在しません。
エラーメッセージは『そんな命令用意されてません。』という
意味です。
すいません。返事が遅くなりました。
特攻隊長まるるうさんありがとうございました。
Rangeオブジェクトではだめなんでしょうか?
Pasteを行う場合はどのようにしたらよろしいのですか?
ご指導の程よろしくお願い致します。
>Rangeオブジェクトではだめなんでしょうか?
レスを読まれましたか?
Range オブジェクトに Paste メソッドは『存在しません。』
…つまり
プログラムはコードの通りの動作をします。(しなければバグ)
裏を返せばコードに用意されてない動作はできません。
プロパティやメソッドはVBが用意したプログラムです。
用意されていない動作はできません。
ボクには
> .Rows(page).Paste 'ここでプロパティまたはメソッドをサポートしてい
のコードは『空を飛ばせたいので↓こうプログラミングしました』
『 .Rows(page).Fly 'ここでプロパティまたはメソッドをサポートしてい』
『でもエラーが出て止まるんです。』
と言ってるのと同じに見えます。
…
……
>Rangeオブジェクトではだめなんでしょうか?
『ダメもクソもあるかよっ!』って気がしますが何か間違ってますか?
そもそも[VB6.0]からエクセルを操作する場合、[Excel VBA]と
同じ処理を呼び出して処理します。
>VBAで作成したものを使用したのですが止まってしまいました。
VBA でも動かないはずですが?動かない(ってゆーかデタラメな)プログラム
を『作成した』とか言われても…意味あるの?。
VBA で動いてるのならコードのコピーミスでしょう。修正して下さい。
VBA で動いてないならもう一回調べ直して下さい。
>Pasteを行う場合はどのようにしたらよろしいのですか?
[Excel VBA]のヘルプに書いてあります。既に存在するものをここで
もう一度書く事に意味を見出せません。意味の無い事をごりおさんの
ためにする気にはなりません。
ヘルプで[対象]のリンクが有効になっている時はクリックしてみて下さい。
そのメソッド(プロパティ)が用意されているオブジェクト名の一覧が出ます。
オブジェクトブラウザで検索するのも有効な手段です。
エクセルの操作をしたい場合は、まずエクセル側でマクロを記録します。
そのマクロを参考に[Excel VBA]のヘルプで調べ、[VB6.0]のコード
で都合が良い形に変更して移植します。経験を積んでもこの手順は
変わりません。実行して下さい。
[参考リンク]
http://www.bcap.co.jp/hanafusa/vbbbs/wforum.cgi?no=1922&reno=no&oya=1922&mode=msgview&page=0
ツイート | ![]() |