0

我是新来的,我刚刚开始使用 VBA,如果有人能帮助我,我将不胜感激。

基本上,来自细胞A1:D5的信息是我收到的。这些信息会定期添加到电子表格中。E1:F5是我已经在 VBA 中开发的论坛,可以自动填充到Column A.

问题是,我有超过 100,000 行数据。因此,总是重播宏将需要大量时间来处理。无论如何我可以编写一个从前几行(即E5和E6)填充的代码吗?

    ABCDEF
1 6J 6J HND KMI 公式 1 公式 2       
2 6J 6J HND KMJ 公式 1 公式 2       
3 6J 6J HND NGS 公式 1 公式 2       
4 6J 6J KMI HND 公式 1 公式 2       
5 6J 6J KMJ HND 公式 1 公式 2   
6 6J 6J NGS HND             
7 7A 7A 福克 ISG             
8 7A 7A 福克 KMQ             
9 7A 7A ISG 福克     

我写了一个简单的代码来测试它,但我被卡住了。我认为问题与声明x为变量有关:


Sub testloop()

Dim lastrowdatab As String
Dim lastrowpopulate As String
Dim x As String

lastrowdataoriginal = Cells(Rows.Count, "A").End(xlUp).Row
lastrowformula = Cells(Rows.Count, "E").End(xlUp).Row

x = Cells(Rows.Count, "E").End(xlUp).Offset(1, 0).Address(False, fase)
Range(":J" & lastrowdatab).Formula = "=2+3"

If lastrowdatab <> lastrowpopulate Then

    Range("x:E" & lastrowdataoriginal).Formula = "=2+3"

Else

    MsgBox "all good"

End If

End Sub

请帮帮我!非常感谢!

4

1 回答 1

0

这是您正在尝试的(尝试和测试)吗?

Sub testloop()
    Dim ws As Worksheet
    Dim LrowA As Long, LRowE As Long, LRowF As Long
    Dim sFormula As String

    '~~> Change this to relevant sheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        LrowA = .Range("A" & .Rows.Count).End(xlUp).Row
        LRowE = .Range("E" & .Rows.Count).End(xlUp).Row
        LRowF = .Range("F" & .Rows.Count).End(xlUp).Row

        sFormula = .Range("E" & LRowE).Formula
        .Range("E" & LRowE & ":E" & LrowA).Formula = sFormula

        sFormula = .Range("F" & LRowF).Formula
        .Range("F" & LRowF & ":F" & LrowA).Formula = sFormula
    End With
End Sub
于 2013-10-24T07:38:15.753 回答