簡體   English   中英

VBA 宏查找具有 Sheet1 數據的單元格范圍使用該范圍在 Sheet2 的范圍內輸入公式

[英]VBA Macro to find range of cells with data on Sheet1 use that range to enter formula in range on Sheet2

Excel 2016

你好

我對 VBA 不是很精通,我正在努力學習。

我有一個包含兩個工作表Sheet_1Sheet_2的工作簿。

我正在嘗試編寫一個 VB 宏,如果在Sheet_1上滿足條件Is not blank ,它會將a formula into a specific range of cells on Sheet_2 worksheet

我希望它的工作方式是宏在“表 1”A 列中找到第一個和最后一個具有數據的單元格,並使用它來指定“表 2”A 列上的范圍,將公式復制到該范圍中。由“Sheet_1”中的范圍標識的行。

因此,如果“工作表 1”A 列在單元格 A1 – A100 中有數據,則 VB 宏在“工作表 2”A 列單元格 A2 – A101 中輸入公式,並且公式應該以與它相同的方式自動編號數字引用如果它是手動復制下來的。 “表 2”有一個 header 行,因此有一行偏移 (A2 – A101)。

我試圖發布一張圖片,說明公式應該如何工作,但該網站不允許我這樣做,但這是 postimage 上的鏈接。

公式工作流程

到目前為止,這是我的宏代碼...

Sub InsertFormulasTest()
    Dim Answer As VbMsgBoxResult
    Dim xRow As Long
    Dim xDirect$
    Dim ws As Worksheet: Set ws = Sheets("Sheet_1")
    Dim ws2 As Worksheet: Set ws2 = Sheets("Sheet_2")
    Answer = MsgBox("Insert Formula", vbYesNo, "Insert formula test")
    If Answer = vbYes Then
        Application.ScreenUpdating = False
        xRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
        If xDirect$ <> "" Then
        ws2.Range("A1").CurrentRegion.ClearContents
        xRow = 1
        ws2.Range("A2").Formula = "=IF(Sheet_1!A1>"""", ""Has Data"",""No Data"")"
        End If
    End If
End Sub

使用最后一行 (+1),在ws2上,您可以使用最后一行填充公式,如下所示(我剛剛更改了最后一行):

If Answer = vbYes Then
    Application.ScreenUpdating = False
    xRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    If xDirect$ <> "" Then
        ws2.Range("A1").CurrentRegion.ClearContents
        xRow = 1
        ws2.Range("A2:A" & xRow).Formula = "=IF('Sheet1'!A1 > """", ""Has Data"",""No Data"")"
    End If
End If

雖然我不知道 xDirect$ 是什么以及您正在檢查它。


再試一次

If Answer = vbYes Then
    xRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    ws2.Range("A2:A" & xRow).ClearContents
    xRow = 1
    ws2.Range("A2:A" & xRow).Formula = "=IF('Sheet1'!A1 > """", ""Has Data"",""No Data"")"
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM