我有一个子宏,它基本上是一个货币转换器,允许用户定义自己的汇率值。我已经在一个单元格上测试了它,并且工作得很好,但是我需要它循环并向下移动一行来定义范围。(目前定义的单元格为L2、K2和G",需要在L3、K3和G3上重复,直到Ln、Kn和Gn等。)
守则如下:
Sub Macro9()
'
' Macro9 Macro
'
Dim score As String, result As String
score = Sheets("Paste Orders Here").Range("K2").Value
If score = "USD" Then
result = Sheets("Paste Orders Here").Range("L2") * Sheets("Configuration").Range("C5")
ElseIf score = "EUR" Then
result = Sheets("Paste Orders Here").Range("L2") * Sheets("Configuration").Range("B5")
ElseIf score = "GBP" Then
result = Sheets("Paste Orders Here").Range("L2")
ElseIf score = "" Then
result = Sheets("Paste Orders Here").Range("K2")
End If
Sheets("Brightpearl").Range("G2").Value = result
'
End Sub谢谢,我知道这可能是完全不正确的,因为我想把它应用到多个行,但我真的需要一些帮助!
发布于 2014-09-16 15:56:08
这是我的解释。我不太清楚该填多少公式,因为你只把它称为n,所以我使用了粘贴订单的底部,这里是L列。
Sub Macro9()
Dim r As Long, lr As Long
With Sheets("Paste Orders Here")
lr = .Cells(.Rows.Count, "K").End(xlUp).Row
For r = 2 To lr
Select Case UCase(.Cells(r, "K").Value)
Case "USD"
Sheets("Brightpearl").Cells(r, "G") = _
CCur(.Cells(r, "L").Value * Sheets("Configuration").Range("C5").Value)
Case "EUR"
Sheets("Brightpearl").Cells(r, "G") = _
CCur(.Cells(r, "L").Value * Sheets("Configuration").Range("B5").Value)
Case "GBP"
Sheets("Brightpearl").Cells(r, "G") = CCur(.Cells(r, "L").Value)
Case Else
Sheets("Brightpearl").Cells(r, "G") = .Cells(r, "K").Value
End Select
Next r
End With
End Sub我发现在这些情况下,Select方法工作得很好,并为将来的扩展提供了方便。
https://stackoverflow.com/questions/25871897
复制相似问题