从vba中的第5个到最终工作表循环?

时间:2016-12-01 23:59:11

标签: excel vba stocks quantitative-finance

我有35到40个包含每日库存数据的工作表,我正在尝试计算宏中每个工作表的库存收益。公式为:LN(今天/昨天),它给出每日股票收益。我正在运行下面的代码,但我无法弄清楚如何在第5个工作表中启动循环。我的投资组合在前四个工作表中。有谁知道这会怎么样?

Sub Macro2()
Dim wb As Workbook
Dim i As Integer
Dim ws As Worksheet
Set wb = ActiveWorkbook
Set ws = Worksheets.Count = 5

For i = 5 To ThisWorkbook.Worksheets.Count
Activeworksheet.Columns("c").ClearContents
 Range("C4").Select
 ActiveCell.FormulaR1C1 = "=LN(RC[-1]/R[-1]C[-1])"
 Range("C4").Select
 Selection.AutoFill Destination:=Range("C4:C507")
 Range("C4:C507").Select
Next i

End Sub

2 个答案:

答案 0 :(得分:1)

你应该avoid using .Select,因为我认为这有助于它。这应该有所帮助:

--output-separator

请注意你是否有正确的想法,以i = 5开头的Sub Macro2() Dim wb As Workbook Dim i As Integer Dim ws As Worksheet Set wb = ActiveWorkbook Set ws = Worksheets.Count = 5 For i = 5 To ThisWorkbook.Worksheets.Count With Worksheets(i) .Columns("c").ClearContents .Range("C4").FormulaR1C1 = "=LN(RC[-1]/R[-1]C[-1])" .Range("C4").AutoFill Destination:=.Range("C4:C507") Next i End Sub 循环是好的,但你实际上从未使用 For。当你使用i时,它(显然是?)会使用当前活动的表格。因此,您的代码只会在该工作表上运行...而且很多时候您都有工作表(如果有意义的话)。

答案 1 :(得分:0)

想出来的人。下面的代码基于B3:B中的价格和C4:C中的返回

@Override
public boolean shouldOverrideUrlLoading(WebView view, String  url) {
    // Ignore css and js
    if (url.endsWith(".css") || url.endsWith(".js")) {
        return false;
    }

    return true;
}