【发布时间】:2020-10-04 20:46:46
【问题描述】:
Excel 2016
嗨
我对 VBA 不是很精通,我正在努力学习。
我有一个包含两个工作表的工作簿,Sheet_1 和 Sheet_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 中输入公式,并且公式应以相同的方式自动编号数字引用如果它是手动复制下来的。 “Sheet 2”有一个标题行,因此有一行偏移量 (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
【问题讨论】:
标签: excel vba excel-formula