我对编码很陌生,写了一些不起作用的代码,我理解为什么,但无法找到解决它的方法。
我想要做的是我的代码检查B列中的每个单元格显示的数字,然后在E列中填写相应的字符串。我的问题是我的循环不起作用,因为我可能应该使用“for each “循环与否?并且我无法弄清楚如何在不使用 Ranges 而是使用单元格的情况下执行我的 ifclause。
感谢您的时间和帮助!
Dim x As Long
For x = 2 To 1000
Range ("E" & x)
If Range("B2") = 6002 Then
Range("E2") = "Gehälter " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6003 Then
Range("E2") = "Üst-Pauschale " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6027 Then
Range("E2") = "Sonderzahlung " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6110 Then
Range("E2") = "SV-DG Anteil " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6211 Then
Range("E2") = "MVK " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6410 Then
Range("E2") = "Dienstgeberbeitrag " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6420 Then
Range("E2") = "Dienstgeberzuschlag " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6430 Then
Range("E2") = "Kommunalsteuer " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6691 Then
Range("E2") = "Km-Geld " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 7731 Then
Range("E2") = "Reisekosten " & Month(Range("G2")) & "/2016"
ElseIf Range("B2") = 6035 Then
Range("E2") = "Sonstige Zulagen " & Month(Range("G2")) & "/2016"
Else: Range("E2") = ""
End If
Next x
这就是它应该的样子!
enter image description here
最佳答案
Dim x As Long, s As String
For x = 2 To 1000
Select Case Cells(x, "B").Value
Case 6002: s = "Gehälter"
Case 6027: s = "Üst-Pauschale"
'other cases....
Case Else: s = ""
End Select
Cells(x, "E").Value = IIf(s <> "", s & " " & _
Month(Cells(x, "G").Value) & "/2016", "")
Next x
关于vba - 使用 If 子句循环某个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38582549/