| A |
-------
1| 123 |
2| |
3| 456 |
4| 789 |
Excel2003を使用しています。
上記のデータをFindを使用して、データが入力されているセルのみを検索したく、
Set C = Worksheets(AAA).Range("A:A").Find(<>"", LookIn:=xlValues)
など、試してみたのですが、上手くいきません。
『Findを使用して、データが入力されているセルのみを検索』する事じたいが無理なのでしょうか。
ご教授の程、お願いします。
No.1
- 回答日時:
以下でどうでしょうか?
Dim C As Range
Set C = Worksheets("AAA").Range("A:A").SpecialCells(xlCellTypeConstants)
やっていることは、メニューから下記を実行したのをコード化しています。
[編集]→[ジャンプ]→[セル選択]→[○定数]をチェック
早速のご回答ありがとうございます。
提示して頂いたプログラムを動かしてみました。SpecialCellsというやり方を知らなかったので、勉強になりました。
このプログラムですと、アドレスが『$A$1,$A$3:$A$4』となります。
123=$A$1,456=$A$3 のように個々のアドレスを取得する事はできないのでしょうか。
もし、宜しければご教授下さい。
No.2
- 回答日時:
Findを利用していませんが、セル選択を利用すれば目的のことはできるかと思います。
<例>
Set C = Worksheets(AAA).Range("A:A").SpecialCells(xlCellTypeConstants, 23)
*上例では、値が入力されているセルを選択しています。
(式が入力されているセルは除かれています)
早速のご回答ありがとうございます。
このプログラムですと、アドレスが『$A$1,$A$3:$A$4』となってしまいますが、123=$A$1,456=$A$3 のように個々のアドレスを取得する事はできないのでしょうか。
もし、宜しければご教授下さい。
No.4
- 回答日時:
#1です
Forループで各セルにアクセスします
以下のコードを参照してください
Sub Macro1()
Dim C As Range
Dim D As Range
Set C = Worksheets("AAA").Range("A:A").SpecialCells(xlCellTypeConstants)
For Each D In C
Debug.Print D.Address
Next
End Sub
または
Sub Macro2()
Dim C As Range
Dim i As Integer
Set C = Worksheets("AAA").Range("A:A").SpecialCells(xlCellTypeConstants)
For i = 1 To C.Count
Debug.Print C(i).Address
Next
End Sub
「For Each D In C」の方が望んでいた答えです。
Findは使えませんでしたが、新しい方法を知ることができました。
二回も回答を頂きありがとうございました。
No.5
- 回答日時:
Set C = Worksheets(AAA).Columns("A:A").Find("*", LookIn:=xlValues)
で最初のセルA1が検索できます。
繰り返して検索であればFindNextを使用しDo~Loopで検索してください。
No.6
- 回答日時:
Set C = Worksheets(AAA).Range("A:A").Find("*", LookIn:=xlValues)
でももちろんOKです。
ご回答ありがとうございます。
提示して頂いたプログラムを動かしてみたのですが、$A$3しか検索してくれません。RangeもColumnsも同じでした。
組み方が間違っているかもしれないので、下記に組んだプログラムを提示します。よろしければ、チェックしてください。
Sub Test()
Dim C As Range
Do
Set C = Worksheets("AAA").Columns("A:A").Find("*", LookIn:=xlValues)
Set C = Worksheets("AAA").Range("A:A").FindNext
Loop
No.7ベストアンサー
- 回答日時:
下記のようになります。
Dim c As Range
Dim a As String
With Worksheets(2).Range("b2:b9")
Set c = .Find("*", LookIn:=xlValues)
If Not c Is Nothing Then
a = c.Address
Do
Debug.Print c.Value; c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> a
End If
End With
動きました!やっと解決できました!!
まだプログラムが理解できない所がありますが、調べてみます。どうしても理解できなければ、また質問するかもしれませんが…(^^;
三度にわたり、回答いただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) マクロで特定日より1日前の日を求めたい 6 2022/05/08 09:23
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) セルの上書き禁止について 5 2022/04/02 10:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルをクリック⇒そのセルに入力...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
Excelのチェックボックスの使い...
-
エクセル オートフィルタで絞...
-
Excelで住所を2つ(町名迄と番...
-
セルに特定の色が付いていたら...
-
枠に収まらない文字を非表示に...
-
Excel:指定セル以下全てのセル...
-
貼り付けで複数セルに貼り付けたい
-
EXCEL VBA セルに既に入...
-
excelの特定のセルの隣のセル指...
-
エクセルの一つのセルに複数の...
-
Excelで、「特定のセル」に入力...
-
Excelでのコメント表示位置
-
【Excel】 セルの色での判断は...
-
エクセルで縦に1112223...
-
セルの高さ(行高)を求めるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報