Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4153 / 13644 ツリー ←次へ | 前へ→

【58166】入力された日付を検索して金額を貼り付け エセシステム開発者 08/10/7(火) 10:17 質問[未読]
【58167】Re:入力された日付を検索して金額を貼り付け kanabun 08/10/7(火) 10:22 発言[未読]
【58171】Re:入力された日付を検索して金額を貼り付け エセシステム開発者 08/10/7(火) 11:44 発言[未読]
【58169】Re:入力された日付を検索して金額を貼り付け にぃ 08/10/7(火) 10:48 回答[未読]
【58173】Re:入力された日付を検索して金額を貼り付け エセシステム開発者 08/10/7(火) 11:50 お礼[未読]

【58166】入力された日付を検索して金額を貼り付け
質問  エセシステム開発者  - 08/10/7(火) 10:17 -

引用なし
パスワード
   いつも参考にさせていただいております。

1.シート1
 セルA1に日付を入力するようになっている
 セルA2に金額を入力するようになっている
 登録ボタンが付いている
2.シート2
 セルA1〜AE1に日付の羅列が入力されている
  →A1に2008/10/1、B1に2008/10/2〜
 セルA2〜AE2に金額が自動表示される

やりたいこととしては、例えば、シート1のセルA1に2008/10/7と入力し、セルA2に10,000と入力します。
その状態で登録ボタンを押すと、シート2の該当日付の金額セルに10,000と表示されるようにしたいのです。

以下のようにソースを組んでみましたが、エラーとなり、うまくいきません。
Dim 検査値 As Double
Sheets("Sheet1").Select
Range("A2").Select
Selection.Copy
検査値 = Range("A1").Value
Sheets("Sheet2").Select
列番号 = Application.WorksheetFunction.Match(検査値, Range("A1:AE1"),1)
行番号 = "2"
Range(列番号 & 行番号).Select
Selection.PasteSpecial Paste:=xlPasteValues,Operation:=xlNone,SkipBlanks _
    :=False, Transpose:=False
  Application.CutCopyMode = False

何かアドバイスを頂けたら幸いです。

【58167】Re:入力された日付を検索して金額を貼り...
発言  kanabun  - 08/10/7(火) 10:22 -

引用なし
パスワード
   ▼エセシステム開発者 さん:

>以下のようにソースを組んでみましたが、エラーとなり、うまくいきません。
> Dim 検査値 As Double

> 検査値 = Range("A1").Value
> 列番号 = Application.WorksheetFunction.Match(検査値, Range("A1:AE1"),1)

Match関数による 日付の検索は 数値の検索です。

> 検査値 = Range("A1").Value
でなく、
検査値 = Range("A1").Value2
 
としてみてください。

【58169】Re:入力された日付を検索して金額を貼り...
回答  にぃ  - 08/10/7(火) 10:48 -

引用なし
パスワード
   こんにちは。

> Range(列番号 & 行番号).Select

↑この部分が違うかと思います。

Cells(行番号, 列番号).Select

として、セル指定にしてあげてください。
たぶんこれで動きます。

ちなみに
> 行番号 = "2"
ですが、
行番号 = 2
のほうがいいと思います。

【58171】Re:入力された日付を検索して金額を貼り...
発言  エセシステム開発者  - 08/10/7(火) 11:44 -

引用なし
パスワード
   ▼kanabun さん:

kanabunさん、早速のご返事ありがとうございます。

> 検査値 = Range("A1").Value2
の通りにやってみましたところ、やはりエラーとなってしまいました。

Range(列番号 & 行番号).Select
のところでエラーとなってしまっています。

シート1のA1セルに2008/10/7と入力すると、
変数列番号は7となっています。

Range関数でセルの指定ができると思うのですが、列番号が数字になっているため、エラーになっているものだと思います。
うまく数字を列番号(A等)に変更する手段はありますでしょうか。

度々で申し訳ございませんが、宜しくお願い致します。

【58173】Re:入力された日付を検索して金額を貼り...
お礼  エセシステム開発者  - 08/10/7(火) 11:50 -

引用なし
パスワード
   ▼にぃ さん:

にぃさん、ご回答ありがとうございます。

>Cells(行番号, 列番号).Select
のようにやってみましたところ、解決しました!
Cells関数(?)を使えば列番号が数字でも大丈夫なんですね。

今回は大変勉強させていただきました。
どうもありがとうございました。

4153 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free