excel - 有没有可能添加新行并插入更新的公式的方法?
问题描述
在我的一个小项目上寻找一些帮助。VBA 编码不是我的事,现在才开始学习,比我想要的晚。
背景故事:我从事商业管理工作,研究了很多项目管理财务。我发现添加新公式然后向下拖动更新的公式非常慢。我一直在寻找如何在添加 Concatenate 公式以提供唯一 ID 的基础上添加一个连续的新行。我做了一些研究,发现了一个文件,它能够为每一行添加值为 +1 的行。
目标:
主要目标- 如果有人可以帮助我更新公式(E 列上的连接公式),此时它是直接复制和粘贴,因此它不会根据新行进行更新。有人可以帮我修改代码吗?
次要目标-此外,它可能是一种范围,但是是否已经有代码可以要求某种文本框以提供多个新行并复制适当的公式?
感谢您的帮助!
请看下面的代码:
Sub Button1_Click()
Dim wsS1 As Worksheet
Dim lRows As Long
Dim Iint As Integer
Set wsS1 = Worksheets("Sheet1")
lRows = wsS1.Range("B65536").End(xlUp).Row
If wsS1.Range("B5").Value = "" Then
wsS1.Range("B5").Value = 1
wsS1.Range("G5").Formula = "=IF(AND(D4=""""),"""",IF(AND(D4<>""""),$E4))"
wsS1.Rows(4).EntireRow.Copy
wsS1.Rows(5).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.Interior.ColorIndex = xlNone
Selection.Font.Bold = False
Rows(5).RowHeight = 12.75
End If
For Iint = 5 To lRows
If wsS1.Range("B" & Iint + 1).Value = "" Then
wsS1.Rows(Iint).EntireRow.Copy
wsS1.Rows(Iint + 1).PasteSpecial xlFormats
wsS1.Rows(Iint + 1).PasteSpecial xlFormula
wsS1.Range("G" & Iint + 1).Formula = wsS1.Range("G" & Iint).Formula
wsS1.Range("C" & Iint + 1).Formula = wsS1.Range("C" & Iint).Formula
wsS1.Range("D" & Iint + 1).Formula = wsS1.Range("D" & Iint).Formula
wsS1.Range("E" & Iint + 1).Formula = wsS1.Range("E" & Iint).Formula
wsS1.Range("B" & Iint + 1).Value = wsS1.Range("B" & Iint).Value + 1
End If
Next Iint
End Sub
解决方案
推荐阅读
- network-programming - 如何以简单的方式将我的公共 IP(通过 netcat 获得)发送到服务器?
- python - 如何通过标点符号拆分熊猫列中的长字符串
- android - Android - 如何将视图添加到布局程序中
- kubernetes - Istio 复杂 K8sObjectOverlay.PathValue
- c++ - 函数重载时的 SFINAE 和隐式强制转换
- python - PyAgrum 返回一个因果公式没有意义/python
- laravel - 如何使用一个 Laravel 控制器和多个 Guard 而不是复制控制器
- javascript - 如何使用 telnet 在 javascript 中调用变量
- javascript - 在迭代中创建函数
- php - php将多个动态输入数据插入数据库