Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VB.net Speed在Excel中循环公式_Vb.net_Vba_Excel - Fatal编程技术网

从VB.net Speed在Excel中循环公式

从VB.net Speed在Excel中循环公式,vb.net,vba,excel,Vb.net,Vba,Excel,解释了整个代码: 我有一段代码,它将一个txt文件保存为一个Microsoft Excel逗号分隔值文件(.csv),然后打开一个空白的模板Excel文件,其中包含一个名为Graphs的工作表。然后,它将包含csv文件中所有数据的工作表复制到模板excel文件中,将其重命名为“数据”,然后在关闭后删除csv。然后,代码在“图形”表中插入一个图表。接下来,它将查找用于引用图形中范围的行总数和列数,然后查找用于后续公式的列数。该数据是加速度计在特定频率下的加速度。因此有很多数据,8193行!数据布局

解释了整个代码:

我有一段代码,它将一个txt文件保存为一个Microsoft Excel逗号分隔值文件(.csv),然后打开一个空白的模板Excel文件,其中包含一个名为Graphs的工作表。然后,它将包含csv文件中所有数据的工作表复制到模板excel文件中,将其重命名为“数据”,然后在关闭后删除csv。然后,代码在“图形”表中插入一个图表。接下来,它将查找用于引用图形中范围的行总数和列数,然后查找用于后续公式的列数。该数据是加速度计在特定频率下的加速度。因此有很多数据,8193行!数据布局为顶行标签(hz,Part1,2…),A列为频率,B2中的所有其他单元格:加速度计读数

问题是需要83.22秒 要执行以下循环,将插入平均公式:

Do While i <= LastRow
        'Assign Range To Take Average
        CellLeft = wbtempXl.Worksheets("Data").Cells(i, 2)
        CellRight = wbtempXl.Worksheets("Data").Cells(i, LastColumn)
        AvgRange = wbtempXl.Worksheets("Data").Range(CellLeft, CellRight)

        Average = appXL.WorksheetFunction.Average(AvgRange)
        wbtempXl.Worksheets("Data").Cells(i, LastColumn + 1).Value = Average
        i = i + 1
    Loop

Do While i我建议您将公式放入带有代码的单元格中,然后根据需要转换为值:

    With wbtempXl.Worksheets("Data")
        formularange = .Range(.Cells(i, LastColumn + 1), .Cells(LastRow, LastColumn + 1))
    End With
    formularange.FormulaR1C1 = "=AVERAGE(RC2:RC[-1])"
    formularange.Value2 = formularange.Value2

哇!谢谢,闪电般的速度,哈哈。你能解释一下R1C1的代码吗?这是什么意思?我如何将其用于斜率函数而不是循环的
SlopeValue=appXL.WorksheetFunction.slope(XSlopeRange,ysloperRange)
?Excel可以使用两种参考样式-A1和R1C1。这段代码只是用R1C1表示法在单元格中放入一个公式-你也可以在这里使用A1表示法。那么我可以用斜率函数吗?你可以用它在单元格中放入的任何函数中。但是我必须使用2个范围。。因为x1x2和y1y2,我不能让它和坡度一起工作。我需要A2:A3表示x1x2,然后2表示y1,y2的平均值。如何分割范围,使其不尝试使用整行<代码>“=Slope(RC:R[-1]C,RC[-1]:R[-1]C)”
类似的东西?
    With wbtempXl.Worksheets("Data")
        formularange = .Range(.Cells(i, LastColumn + 1), .Cells(LastRow, LastColumn + 1))
    End With
    formularange.FormulaR1C1 = "=AVERAGE(RC2:RC[-1])"
    formularange.Value2 = formularange.Value2