2016-03-25 18 views
0

ワークシートごとに数百のエントリを持つワークブックがあります。&次の空きセルを列で見つけるコードがあります。コードは1つのシートでは動作しますが、他のシートでは動作しません。私はそれが何かシンプルであることを知っていますが、間違っているとわかりません。a列の次の空のセルを見つける

Private Sub CommandButton_Click() 
Dim ws As Worksheet 

Set ws = ActiveSheet 

For Each cell In ws.Columns(1).Cells 
    If Len(cell) = 0 Then cell.Select: Exit For 
Next cell 
End Sub 
+1

あなたのコードは 'Set ws = ActiveSheet'と読んで、1つのシートだけで動作します。 – findwindow

+0

セルA1に行き、 'Ctrl + [下矢印]'を押して、列Aの次の空のセルを見つけますか? VBAは必要ありません。ジャストキープレス。 –

答えて

0

を用いることであろう私が作成しましたモジュールは、行内の次のブランクセルを見つける。ここにコードはSub Macro_FIND_NEXT_BLANK_SPACE() If IsEmpty(ActiveCell.Offset(1)) Then ActiveCell.Offset(1).Select Else ActiveCell.End(xlDown).Offset(1).Select End If End Sub 私はサブコマンドを実行するコードを書いた。 Private Sub CommandButton14_Click() Call Macro_FIND_NEXT_BLANK_SPACE End Sub 私は彼らの支援のためにグループに感謝したいと思います。

0

あなたが以前のクリックで見つかった最後の空のセルを「記憶」する方法が必要です:

Public iROW As Long 

Sub CommandButton_Click() 
Dim ws As Worksheet 

Set ws = ActiveSheet 

For Each cell In ws.Columns(1).Cells 
    If cell.Row > iROW Then 
     If Len(cell) = 0 Then 
      cell.Select 
      iROW = cell.Row 
      Exit For 
     End If 
    End If 
Next cell 
End Sub 

代替はFind()FindNext()

+0

私は解決策に近づいています。 findwindow&Garyの学生、あなたの援助に感謝したい。あなたは私に問題へのアプローチ方法を考えさせました。私は、モジュールにコードを配置し、コマンドボタンからサブを実行するコードを記述しました。 Subを実行すると、このコード行に構文エラーが表示されます。 'Call Sub Macro_FIND_NEXT_BLANK_SPACE'私が間違っていることを説明し、解決する方法を説明します。 –

+0

ここで答えは 'Private Sub CommandButton#_Click() Call Macro_FIND_NEXT_BLANK_SPACE End Sub'です。上記のコードはモジュールを実行します。 'サブMacro_FIND_NEXT_BLANK_SPACE() 場合のisEmpty(ActiveCell.Offset(1))次に ActiveCell.Offset(1).Selectエルス ActiveCell.End(xlDown).Offset(1).Select END IFエンドSub' –

関連する問題