
Dim s
Dim h As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
h = Sheets("決算").Cells(3, 2).Value
For Each ws In Worksheets
s = ws.Index
Next ws
For k = 5 To s Step 1
Set KaMoku = Sheets(k).Range("D3:J103").Columns(1)
MyRNo = Application.WorksheetFunction.Match(h, KaMoku, 0)
MyUNo = KaMoku.Cells(MyRNo).Offset(, 4)
n = n + MyUNo
Sheets("決算").Cells(3, 5).Value = n
Next k
End Sub
自治会の決算書を作りたいので上記のようなマクロを、インターネットで調べながら
私の知識のない頭をフル回転させて書いてみたのですが。
h = Sheets("決算").Cells(3, 2).Valueで、hへの値の代入が一つのセルからの代入ではなくて
h = Sheets("決算").Range("B3:B103").Valueのように範囲から文字をさがしたいのです。
それと
MyRNo = Application.WorksheetFunction.Match(h, KaMoku, 0) AND
MySNo = Application.WorksheetFunction.Match(K, KoKaMoku, 0)
のように、この文字が同じで、次の列のこの文字も同じ時に
MyUNo = KaMoku.Cells(MySNo).Offset(, 4) 4列目の値を
n = n + MyUNo
Sheets("決算").Cells(3, 5).Value =(ではなくて) ここも、一致した文字のあるセルの隣のセルに数値を入れたいのですが、うまくいきません。どうか私に、あなたの素晴らしい知恵をかしてください。
お願いします。
No.1ベストアンサー
- 回答日時:
書いてある内容が半分ほどしか理解できなかったため、憶測でよければ参考にしてください。
>h = Sheets("決算").Range("B3:B103").Valueのように範囲から文字をさがしたいのです。
複数セルの値を格納したいのであれば、Variant型(数値)を使用すれば値を取得できます。
例:
Dim getTargetVal() As Variant
配列で値を保持しているため、値を取り出したい場合は、For文などで繰返し処理を使用します。
>MyRNo = Application.WorksheetFunction.Match(h, KaMoku, 0) AND
>MySNo = Application.WorksheetFunction.Match(K, KoKaMoku, 0)
>のように、この文字が同じで、次の列のこの文字も同じ時に
>MyUNo = KaMoku.Cells(MySNo).Offset(, 4) 4列目の値を
値を取得する条件を指定した場合はIF文を使用します。
ただし、Match関数は一致するものがない場合、N/Aを返すため、IsError関数で制御
IsErrorは、エラーが出た場合Trueを返す
If IsError(Application.Match(範囲, 範囲, 0)) = False Then
やりたい処理
End IF
早速回答して頂いてありがとうございます。
私の書き方が悪かった尾で、聞きたい事の内容が把握しずらくすみません。
私のやりたい事は
現金出納帳シートのA列(大科目)B列(小科目)の文字列の中の 大科目(たとえば会費・入会金)小科目(たとえば会費)
この二つの文字が、決算シートのA列(大科目)の範囲のB列(小科目)の同じ文字の行の右隣のセルに、出納帳に入力した数値を入れたいのです。
1つは宣言の型が悪かったのですね、Matchに対してのIFの使い方がわからなかったので何となく分かりました。近いうちに試してみます。
私みたいな素人にみ分かりやすい回答をしていただいて、大変感謝しています。
ありがとうございます。
また質問をさせて頂くと思いますので、その時はよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
Exit Subのような・・・。
-
Access2003 オートナンバーの現...
-
データ構造のmapとは?
-
コンボボックスの名前を変数に...
-
VBAの定数の使い方で、計算値を...
-
C#で動的にコントロールを取得...
-
ラジオボタンの値の取得につい...
-
フリーランタイマーの時間差分...
-
フォームを開くときに、コンボ...
-
Nullってどういう意味ですか?
-
C言語でCLAMP(a,b,c)
-
1つ前の値を変数に保存する方法
-
DataGridView 複数行同時変更...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
intB = 1 + (intA <= 3) ??
-
if文内での計算
-
エクセル 決算マクロ
-
DWORDって
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
C#で動的にコントロールを取得...
-
VBAで配列のNULL判定
-
フリーランタイマーの時間差分...
-
足して100になるような乱数のア...
-
DWORDって
-
ラジオボタンの値の取得につい...
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
-
定数のメリットとは?
-
C#でのIF文 時間比較のやり方
-
Excel VBA Forの使い方について...
-
【C++/CLI】コンボボックスの値...
-
DataGridView 複数行同時変更...
-
世界のナベアツ
-
CGIのPerlの変数をJavaScrip...
おすすめ情報