エクセルの質問です。


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

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

Private Sub CommandButton1_Click()

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

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

End Sub

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/04/13 03:01:18
  • 終了:2008/04/20 03:05:02

回答(2件)

id:notapachi No.1

notapachi回答回数213ベストアンサー獲得回数182008/04/13 04:27:36

ポイント35pt

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

 

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

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

 

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はダミーです)

id:airplant No.2

airplant回答回数220ベストアンサー獲得回数492008/04/13 08:36:58

ポイント35pt

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 <ダミーです>

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません