人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの質問です。

セルの番地を取得して、そのセルのみ別のシートに記述するべく下記のコードを書いたのですが、型が一致しないエラーで動きません。
初歩的な質問かと思いますが、お知恵をお貸しください。
番地を取得するところまではメッセージボックスを使ってデータが取得できていることは確認しています。

転記するところで失敗しています。

Private Sub CommandButton1_Click()

dataSource = Application.Selection.Address(ReferenceStyle:=xlR1C1)

Worksheets("Sheet2").Cells(dataSource).Value = Worksheets("Sheet1").Cells(dataSource).Value

End Sub

●質問者: clinejp
●カテゴリ:コンピュータ インターネット
✍キーワード:application sub エクセル エラー コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● notapachi
●35ポイント

●「選択したセルの内容を別のシートにコピーしたい」ってことでよろしいのでしょうか。

下記コードをモジュールに貼り付けて、適当なショートカットを割り振ってみて下さい。

この方法だと、マウスを操作する必要がなくなります。

Sub Cell_Copy()

Selection.Copy

Sheets("Sheet2").Select

ActiveSheet.Paste

ActiveCell.Offset(1, 0).Activate

Sheets("Sheet1").Select

Application.CutCopyMode = False

End Sub

誤解していたらごめんなさい。

http://q.hatena.ne.jp/dummy(URLはダミーです)


2 ● airplant
●35ポイント

Cellプロパティは、Cell(行, 列)かCell(A1を1としたときの絶対番地)で指定しますので、今回のようにR1C1形式だとエラーになります。

次のコードのようにA1形式でアドレスを取り出して、Rangeプロパティで行えば動きます。

又は、値を直接入れずに数式で参照させておくことでもいいかと思います。

Private Sub CommandButton1_Click()

  'DataSource = Application.Selection.Address(ReferenceStyle:=xlR1C1)
 DataSource = Application.Selection.Address(ReferenceStyle:=xlA1)

  'Worksheets("Sheet2").Cells(DataSource).Value = Worksheets("Sheet1").Cells(DataSource).Value
  'Worksheets("Sheet2").Cells(257).Value = "ここはA2"
  'Worksheets("Sheet2").Cells(2, 3).Value = "ここはC2"
 Worksheets("Sheet2").Range(DataSource).Value = Worksheets("Sheet1").Range(DataSource).Value

End Sub

'数式参照版
Private Sub CommandButton1_Click()

 DataSource = Selection.Address(ReferenceStyle:=xlA1)
 Worksheets("Sheet2").Range(DataSource).Formula = "=Sheet1!" & DataSource

End Sub

http://www.google.co.jp <ダミーです>

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ