Excel(2010)でセル範囲をスキャンし、スキャンしたセルの数、数値セルまたはテキストセルが他にあったか、空のセルがいくつ見つかったかを示すプログラムをVBAで作成するにはどうすればよいですか? 範囲セルはユーザーが定義します。
これは私の現在のコードです:
Private Sub CommandButton1_Click()
Dim c As Range
Set c = Application.InputBox(Prompt:="A vizsgálandó cellatartomány:", Title:="Adja meg a cellatartományt!", Default:="A1:B4", Type:=8)
Dim szam As Integer, szoveg As Integer, osszescella As Integer, ures As Integer
osszescella = c.Cells.Count '# of scanned cells
Dim rngSpec As Range
Set rngSpec = c.SpecialCells(xlCellTypeBlanks)
If Not rngSpec Is Nothing Then ures = rngSpec.Cells.Count '# of blank cells
Set rngSpec = c.SpecialCells(xlCellTypeConstants, 2)
If Not rngSpec Is Nothing Then szoveg = rngSpec.Cells.Count '# of text cells
Set rngSpec = c.SpecialCells(xlCellTypeConstants, 1)
If Not rngSpec Is Nothing Then szam = rngSpec.Cells.Count '# of numeric cells
Dim kezdocella As String
kezdocella = InputBox("Kezdő cella", "Adja meg a kezdőcellát:", "G10")
Range(kezdocella).Value = "Vizsgált cellák száma: "
Range(kezdocella).Offset(0, 1).Value = osszescella
Range(kezdocella).Offset(1, 0).Value = "Szöveges/számos van több?"
If szam > szoveg Then Range(kezdocella).Offset(1, 1).Value = "Számos" _
Else: If szoveg > szam Then Range(kezdocella).Offset(1, 1).Value = "Szöveges" _
Else Range(kezdocella).Offset(1, 1).Value = "Ugyanannyi van"
Range(kezdocella).Offset(2, 0).Value = "Üres cellák száma: "
Range(kezdocella).Offset(2, 1).Value = ures
Range(kezdocella).Offset(3, 0).Value = "Nem üres cellák száma: "
Range(kezdocella).Offset(3, 1).Value = osszescella - ures
Cells.Columns.AutoFit
End Sub
Scott Holtzman に感謝します。最後に、ユーザーが指定したセルから始まる結果が表示されます。もっと良い方法があると思いますが、これもうまくいくと思います。