VBA Цыкл па значэннях ў слупку і змяняючы наступны слупок на аснове значэння

У мяне ёсць кавалак кода, які прымае значэнне ў вочку і ўстанаўлівае іншую вочка на аснове значэння. Гэта просты код, я проста не магу зразумець, як гэта цыкл, каб прайсці праз усю калону. Можа хтосьці адзін наставіць мяне, якім чынам гэта можна зрабіць? Загадзя дзякую!

Вось код, у мяне ёсць:

Dim pH As Single, Program As String
pH = Range("D2").Value

If pH <= 7.8 Then
     Program = "Neutral"
Else
     Program = "Alkaline"

Range("E2").Value = Program
3

7 адказы

Вам не трэба VBA яшчэ

set formula in your E2 '= IIF(D2<=7.8;"Neutral";"Alkaline")'

І вы можаце скапіяваць яго ніжэй E слупкоў

6
дададзена
Мой код заснаваны на ваша пытанне .. лепш вы кажаце ўсё, што вам трэба
дададзена аўтар matzone, крыніца
Я буду мець гэта зрабіць значна больш. Гэта толькі пачатак. Дзякуй за адказ, хоць.
дададзена аўтар mad5245, крыніца

Калі вы хочаце зрабіць гэта ў VBA, вы можаце стварыць "Рабіце Да» Loop ісці да таго часу, пакуль не застанецца больш значэння ў слупку:

Sub Looper()

Dim i as Integer
Dim Sel as String
Dim MoveDown as String
Dim pH as Single
Dim Program as String

i = 2
MoveDown = "YES"

Do Until MoveDown = "DONE"
    Sel = "D" + Replace(Str(i), " ", "")
    ph = Range(Sel).Value

    If pH <= 7.8 Then
        Program = "Neutral"
    Else
        Program = "Alkaline"
    End If

    Sel = "E" + Replace(Str(i), " ", "")
    Range(Sel).Value = Program
    i = i + 1
    Sel = "D" + Replace(Str(i), " ", "")
    If Range(Sel).Value = "" Then
        MoveDown = "DONE"
    End If
Loop
End Sub
3
дададзена
Гэта выдатна. Працуе як шарм. дзякуй
дададзена аўтар mad5245, крыніца

Калі вы хочаце зрабіць гэта ў VBA, вы можаце стварыць "Рабіце Да» Loop ісці да таго часу, пакуль не застанецца больш значэння ў слупку:

Sub Looper()

Dim i as Integer
Dim Sel as String
Dim MoveDown as String
Dim pH as Single
Dim Program as String

i = 2
MoveDown = "YES"

Do Until MoveDown = "DONE"
    Sel = "D" + Replace(Str(i), " ", "")
    ph = Range(Sel).Value

    If pH <= 7.8 Then
        Program = "Neutral"
    Else
        Program = "Alkaline"
    End If

    Sel = "E" + Replace(Str(i), " ", "")
    Range(Sel).Value = Program
    i = i + 1
    Sel = "D" + Replace(Str(i), " ", "")
    If Range(Sel).Value = "" Then
        MoveDown = "DONE"
    End If
Loop
End Sub
3
дададзена
Гэта выдатна. Працуе як шарм. дзякуй
дададзена аўтар mad5245, крыніца

Калі вы хочаце зрабіць гэта ў VBA, вы можаце стварыць "Рабіце Да» Loop ісці да таго часу, пакуль не застанецца больш значэння ў слупку:

Sub Looper()

Dim i as Integer
Dim Sel as String
Dim MoveDown as String
Dim pH as Single
Dim Program as String

i = 2
MoveDown = "YES"

Do Until MoveDown = "DONE"
    Sel = "D" + Replace(Str(i), " ", "")
    ph = Range(Sel).Value

    If pH <= 7.8 Then
        Program = "Neutral"
    Else
        Program = "Alkaline"
    End If

    Sel = "E" + Replace(Str(i), " ", "")
    Range(Sel).Value = Program
    i = i + 1
    Sel = "D" + Replace(Str(i), " ", "")
    If Range(Sel).Value = "" Then
        MoveDown = "DONE"
    End If
Loop
End Sub
3
дададзена
Гэта выдатна. Працуе як шарм. дзякуй
дададзена аўтар mad5245, крыніца

гэта можа быць аптымальным рашэннем з выкарыстаннем VBA:

Sub mysub()

    Set Wksht = ThisWorkbook.Sheets("Sheet1")  'the Worksheet name you want to fetch data from
    Wksht.Select
    Set myRange = Wksht.Range("D2", Range("D65536").End(xlUp))

    For Each myCell In myRange.Cells

        If myCell > 7.8 Then
            myCell(1, 2) = "Natural" 
        Else
            myCell(1, 2) = "Alkaline"
        End If

    Next myCell

End Sub
<�Р> Blockquote: <�моцны> myCell (1,2) </моцны> мае на ўвазе бягучага радка і слупка E ..Это будзе выкарыстоўваць адносны адрас з бягучага адрасы вочкі .... таму, калі адрас Бягучая вочка D2 ..myCell (1,2) з'яўляецца eqvivalent Е2, як разумнага myCell (1,3) азначае, F2, [myCell (радок, слупок)]. </р>
2
дададзена

гэта можа быць аптымальным рашэннем з выкарыстаннем VBA:

Sub mysub()

    Set Wksht = ThisWorkbook.Sheets("Sheet1")  'the Worksheet name you want to fetch data from
    Wksht.Select
    Set myRange = Wksht.Range("D2", Range("D65536").End(xlUp))

    For Each myCell In myRange.Cells

        If myCell > 7.8 Then
            myCell(1, 2) = "Natural" 
        Else
            myCell(1, 2) = "Alkaline"
        End If

    Next myCell

End Sub
<�Р> Blockquote: <�моцны> myCell (1,2) </моцны> мае на ўвазе бягучага радка і слупка E ..Это будзе выкарыстоўваць адносны адрас з бягучага адрасы вочкі .... таму, калі адрас Бягучая вочка D2 ..myCell (1,2) з'яўляецца eqvivalent Е2, як разумнага myCell (1,3) азначае, F2, [myCell (радок, слупок)]. </р>
2
дададзена

гэта можа быць аптымальным рашэннем з выкарыстаннем VBA:

Sub mysub()

    Set Wksht = ThisWorkbook.Sheets("Sheet1")  'the Worksheet name you want to fetch data from
    Wksht.Select
    Set myRange = Wksht.Range("D2", Range("D65536").End(xlUp))

    For Each myCell In myRange.Cells

        If myCell > 7.8 Then
            myCell(1, 2) = "Natural" 
        Else
            myCell(1, 2) = "Alkaline"
        End If

    Next myCell

End Sub
<�Р> Blockquote: <�моцны> myCell (1,2) </моцны> мае на ўвазе бягучага радка і слупка E ..Это будзе выкарыстоўваць адносны адрас з бягучага адрасы вочкі .... таму, калі адрас Бягучая вочка D2 ..myCell (1,2) з'яўляецца eqvivalent Е2, як разумнага myCell (1,3) азначае, F2, [myCell (радок, слупок)]. </р>
2
дададзена