簡體   English   中英

Excel VBA在空單元格中循環並檢索行值

[英]Excel VBA looping through empty cells and retrieving row values

又是我!

我想做的是在我的范圍內搜索任何空單元格,並為找到的每個空單元格從其行(偏移量)中返回一些值。

到目前為止,我提出的代碼:

 Private Sub buscarbtn_Click()
Dim fecha As Date: fecha = fechabsc.Value
Dim DESCUBIERTO As Boolean: DESCUBIERTO = False
Dim LR As Long
Dim r As Long
Dim i As Long
Dim diasem
Dim cell As Range


Hoja9.Range("L8").Value = fecha
fec = Hoja9.Range("L9").Value

If fec = "1" Then
    diasem = "D"
End If
If fec = "2" Then
    diasem = "L"
End If
If fec = "3" Then
    diasem = "M"
End If
If fec = "4" Then
    diasem = "W"
End If
If fec = "5" Then
    diasem = "J"
End If
If fec = "6" Then
    diasem = "V"
End If
If fec = "7" Then
    diasem = "S"
End If

Hoja9.Range("L10").Value = diasem
Set fecdes = prontuario1.Range("S:S").Find(what:=diasem, LookIn:=xlValues, LookAt:=xlWhole)

For Each cell In prontuario1.Range("S:S")

    If fecdes.Offset(0, 5).Value = "" Then
      DESCUBIERTO = True
      Debug.Print fecdes.Offset(0, 2).Value & " " & fecdes.Offset(0, 3).Value & " - " & fecdes.Offset(0, 4).Value
    End If
Next cell

End Sub

我正在使用的Debug.Print只是測試的一種臨時解決方案,因為嘗試打印整個行只會返回一個結果...現在我得到同一行的多個結果。

我只能猜測我正在忽略某些內容或使用For Each循環完全錯誤。

我知道我的代碼確實亂七八糟,但是如果您能指出正確的方向,我將不勝感激。

謝謝!

看起來您的循環似乎是每次都引用fecdes而不是單元格,因此對於S列中的每個單元格,它都將重新計算fecdes.offset(0,5),然后在fecdes單元格旁邊打印值。 但是大概您至少想讓它評估您在S列中循環通過的單元格,對嗎?

Private Sub buscarbtn_Click()
Dim fecha As Date: fecha = fechabsc.Value
Dim DESCUBIERTO As Boolean: DESCUBIERTO = False
Dim LR As Long
Dim r As Long
Dim i As Long
Dim diasem as string
Dim cell As Range


Hoja9.Range("L8").Value = fecha
fec = Hoja9.Range("L9").Value


select case fec
case 1
    diasem = "D"
case 2
    diasem = "L"
case 3
    diasem = "M"
case 4
    diasem = "W"
case 5
    diasem = "J"
case 6
    diasem = "V"
case 7
    diasem = "S"
end select

Hoja9.Range("L10").Value = diasem
r = prontuario1.cells(1,19).end(xldown).row

For i=2 to r
If prontuario1.cells(i,19).Offset(0, 5).Value = "" Then
  DESCUBIERTO = True
  Debug.Print prontuario1.cells(i,19).Offset(0, 2).Value & " " & prontuario1.cells(i,19).Offset(0, 3).Value & " - " & prontuario1.cells(i,19).Offset(0, 4).Value
End If
Next i

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM