名前付きベイを持つ倉庫を表すデータベースを作成しようとしています。これには、Log Inのマテリアルと、必要なときにそれらをチェックする機能があります。Excel VBA - セルが空の場合は何か、それ以外の場合はエラーを返します
私のExcelワークブックには、Log InシートとRow AからRow Gのラベルが付いた7枚のシートがあり、倉庫内の通路を表しています。各通路には5つの棚といくつかのベイがあります。この情報は連結されて固有のロケーションを与えます。私は現在、VBAに材料が配置される場所が空かどうかを確認するよう頼んでいます。そうであれば、Log Inシートからコピーされた情報を貼り付ける必要があります。残念ながら、私のシートに何があっても、コードはActiveCellに「TRUE」を塗りつぶして、それが真でない場合に求めたエラーメッセージを表示します。私はIfEmptyも同様の結果で試しました。
私のコードは次のようになります:あなたは間違っSelection
を使用している
Sub LogIn()
Dim Row As String
Dim Location As String
' assign values to variables
Worksheets("Log In").Activate
Location = Cells(6, 3).Value
Row = Cells(3, 3).Value
' copy new inputs to clipboard
Sheets("Log In").Range("C8:C11").Copy
' find the correct location within the separate racking sheets
Sheets("Row " & Row).Activate
Selection = Cells.Find(What:=Location, After:=Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False, searchformat:=False).Activate
Selection = Sheets("Log In").Cells(6, 3).Value
Selection = ActiveCell.Offset(0, 2).Activate
' check whether location is empty
If ActiveCell.Value = "" Then
' paste new inputs onto racking sheet
ActiveCell.PasteSpecial
' or return an error
Else: MsgBox "The location you have selected is currently occupied"
End If
End Sub
これは本当に知りたいことです。時間と書き換えを節約するために、私は 'ActiveCell.Offset'の前から' Selection = 'を削除するだけで動作させました。 –