Ho usato un Vlookup per restituire i valori nella colonna I,tuttavia, solo metà delle celle in questa colonna ha restituito un valore (l'altra metà è vuota). Mi piacerebbe che la mia Macro inserisse uno spazio "" in tutte le celle vuote di Vlookup invece di mantenere l'equazione di Vlookup nella cella. Voglio archiviare tutti i valori nella colonna e quindi cambiare le celle vuote in = ""
Il mio obiettivo finale è pubblicare una nota su ogni rigain base al fatto che la cella I abbia un valore o uno spazio. Se la cella I per qualsiasi linea è vuota, la cella nella colonna K per quella linea si riempirà automaticamente "Elaborato non ancora pagato", se c'è un valore nella cella I, la cella K si riempirà automaticamente "A pagamento"
Il mio problema è che non so come scrivere unequazione che evita le celle nascoste (nascoste dal filtro) e modifica solo i valori delle celle visualizzate dopo il filtro. Le intestazioni delle mie colonne sono nella riga 4 e il mio codice è presentato di seguito:
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "C").End(xlUp).Row
Range("A4:K" & Lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$A$4:$K" & Lastrow).AutoFilter Field:=9, Criteria1:="="
Range("I4").Offset(1, 0) = " "
Selection.AutoFill Destination:=Range("Range("I4").Offset(1, 0):I" &
Lastrow)
risposte:
2 per risposta № 1Esistono diversi modi per risolvere il tuo problema. In primo luogo, puoi semplicemente inserire una formula nella colonna K per verificare se le celle nella colonna I sono vuote:
=IF(I4<>"","Paid","Processed Not Yet Paid")
O se lo sei veramente alla ricerca di una soluzione macro, vai giù in cella per cella e controlla i valori:
Sub WhoDidntPay()
Dim lastrow As Long, i As Long
lastrow = Cells(Rows.Count, "C").End(xlUp).Row
For i = 4 To lastrow
If ActiveSheet.Range("I" & i).Value <> "" And _
ActiveSheet.Range("G" & i).Value = <> 0 Then
ActiveSheet.Range("K" & i).Value = "Processed Not Yet Paid"
Else
ActiveSheet.Range("K" & i).Value = "Paid"
End If
Next i
End Sub
Ancora una volta, suggerisco di aggiungere un IFERROR
alla tua VLOOKUP
s in modo che tu possa restituire un valore consistente se stai ricevendo degli errori, o se loro stanno davvero restituendo degli spazi vuoti, possono solo usare ""
come nell'esempio sopra.