Excel 通过一个范围读取Cellvalue,然后写入另一个范围

Excel 通过一个范围读取Cellvalue,然后写入另一个范围,excel,vba,Excel,Vba,我正在尝试制作一份VBA纸条,检查B2和B60之间的所有单元格中的文本“Ja”,这在挪威语中是肯定的。 如何使这比为每个单元格生成“if”命令简单一点? 如果单元格中包含“ja”(是),则将其写入列D和相同的数字。 例如,B1,2,3,4,5包含“ja”,我需要它取D1.2,3,4,5中的上一个单元格值,并向其添加另一个数字+1。 如果在B中未找到任何内容(即false),则需要在当前单元格中写入“NEI”,如果在该单元格中找到“NEI”(no),则会向列E添加+1 Sub Macro2() D

我正在尝试制作一份VBA纸条,检查B2和B60之间的所有单元格中的文本“Ja”,这在挪威语中是肯定的。
如何使这比为每个单元格生成“if”命令简单一点?
如果单元格中包含“ja”(是),则将其写入列D和相同的数字。
例如,B1,2,3,4,5包含“ja”,我需要它取D1.2,3,4,5中的上一个单元格值,并向其添加另一个数字+1。
如果在B中未找到任何内容(即false),则需要在当前单元格中写入“NEI”,如果在该单元格中找到“NEI”(no),则会向列E添加+1

Sub Macro2()
Dim celltxt As String
Dim a As Variant
   If IsEmpty(Range("B2").Value) = True Then
    Cells(2, 2).Value = "NEI"
   End If
celltxt = ActiveSheet.Range("B2").Text
If InStr(1, celltxt, "ja") Then
a = Cells(2, 1).Value
'write to cell
Cells(2, 4).Value = Cells(2, 4) + 1
Else
'antall Cw'er vedkommende IKKE har deltatt på
Cells(2, 5).Value = Cells(2, 5) + 1
End If
   If IsEmpty(Range("B3").Value) = True Then
    Cells(3, 2).Value = "NEI"
   End If
celltxt = ActiveSheet.Range("B3").Text
If InStr(1, celltxt, "ja") Then
a = Cells(3, 1).Value
'write to cell
Cells(3, 4).Value = Cells(3, 4) + 1
Else
'antall Cw'er vedkommende IKKE har deltatt på
Cells(3, 5).Value = Cells(3, 5) + 1
End If


End Sub
Sub slettingALL()
    Range("D2:E55").Select
    Selection.ClearContents
End Sub
Sub slettingdeltakelse()
    Range("B2:B60").Select
    Selection.ClearContents
End Sub

下面的代码使用For-Each循环和IF-THEN-ELSE语句检查B2:B60范围内的值“JA”

如果找到“JA”,它将从当前i位置向右查找两列,并在其上方的值上添加“+1”。如果找不到任何内容,它会将“NEI”写入当前i位置,然后向右移动三列,并向其上方的值添加+1

Sub Macro2()

For Each i In Range(Cells(2, 2), Cells(60, 2))
    If i.Value = "JA" Then
        i.Offset(0, 2).Value = i.Offset(-1, 2).Value + 1
    Else
        i.Value = "NEI"
        i.Offset(0, 3).Value = i.Offset(-1, 3).Value + 1
    End If

Next i

End Sub

如果此代码不适用于您的目的,请告知我。

无需担心,请不要忘记标记您选择的答案:)