Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA Vlookup (PHP)

Heglund [22.07.2014 15:15:04]

#

Tervehdys pitkästä aikaa! Toivottavasti nyt on kooditagit oikein :). Eli seuraavanlainen kysymys. Oheinen VBA Vlookup koodi toimii, mutta se lopettaa toimimisen kun haettavaa tietoa ei löydy. Do While pyörittää koodia niin kauan kunnes A sarake on tyhjä. Nyt kuitenkin jos sillä hetkellä haussa olevaa tietoa ei ole niin se lopettaa Vlookupin kokonaan. Tarkoitus olisi, että jos haettavaa tietoa ei ole niin sen laittaa vaikka 0 kyseisen nimen kohdalle ja jatkaa Vlookupin loppuun. Ohessa koodi!

Sub Vlookup()
Dim i As Integer
i = 1
Do While Range("A" & i).Value <> ""
the_value = Worksheets("Asiakkaat").Range("A" & i + 1)
Range("B" & i + 1)=Application.WorksheetFunction.Vlookup(the_value,Worksheets("Tammi").Range("A:F"), 6, False)
i = i + 1
Loop
End Sub

Mod. korjasi kooditagit pois tavallisesta tekstistä ja VBA-koodiin oikean kielen kooditagit. Mitä kummaa?!

Grez [22.07.2014 15:44:56]

#

Heglund kirjoitti:

Toivottavasti nyt on kooditagit oikein :).

Ei ole. Viestiä ei ole tarkoitus merkitä koodiksi ja VBA ei ole lähelläkään PHP:tä.

En kyllä ihan ymmärrä miksi haluat tehdä tuon VBA:lla, eikö se olisi helpompaa pistää vaan tuo vlookup funktio B-sarakkeeseen ja kopioida seuraaville riveille.

Mutta jos nyt väkisin haluaa tehdä VBA:lla niin vaikka

Sub Vlookup()
    Dim i As Integer
    i = 1
    On Error Resume Next
    Do While Range("A" & i).Value <> ""
        the_value = Worksheets("Asiakkaat").Range("A" & i + 1)
        Range("B" & i + 1).Formula = 0
        Range("B" & i + 1) = Application.WorksheetFunction.Vlookup(the_value, Worksheets("Tammi").Range("A:F"), 6, False)
        i = i + 1
    Loop
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta