ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: qmlyc1

[求助] 请帮忙写一个VBA,任意单元格下方插入一行并延续公式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-5 16:54 | 显示全部楼层
本帖最后由 准提部林 于 2023-2-5 16:56 编辑

F6沒有公式, 上方不能再插入行//

SelectionChange 插入行// 可能就無法做刪除行//
還是建議按鈕...重新刷一次公式...刷好刷滿

TA的精华主题

TA的得分主题

发表于 2023-2-13 19:27 | 显示全部楼层
准提部林 发表于 2023-2-5 16:54
F6沒有公式, 上方不能再插入行//

SelectionChange 插入行// 可能就無法做刪除行//

从楼主的附件内容看,其实际操作场景是不做行删除的。
即便删除了行,导致公式出现了#Ref!错误,手动拖曳公式复制下即可。
有兴趣的话,看看我的代码(参照你的代码思路作了大的变动):
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     Dim theRow&, theEndRow&, theAns&
  3.     '
  4.     With Target
  5.         If .EntireRow.Address = .Address Then
  6.             theRow = .Row
  7.             If theRow > 6 Then
  8.                 With .Parent
  9.                     If WorksheetFunction.CountA(.Range(.Cells(theRow, 4), .Cells(theRow, 5))) = 0 Then
  10.                         theAns = MsgBox("插入行吗?", vbYesNo + vbExclamation, "确认")
  11.                         If theAns = vbYes Then
  12.                             .Cells(theRow, 1).Resize(Target.Rows.Count).EntireRow.Insert Shift:=xlDown
  13.                             theEndRow = .Cells(.Rows.Count, 6).End(xlUp).Row
  14.                             If theEndRow > theRow + Target.Rows.Count - 1 Then
  15.                                 .Range(.Cells(7, 6), .Cells(theEndRow, 6)).FormulaR1C1 = "=IF(RC[-2]+RC[-1]=0,"""",R[-1]C+RC[-2]-RC[-1])"
  16.                             Else
  17.                                 .Range(.Cells(7, 6), .Cells(theRow + Target.Rows.Count - 1, 6)).FormulaR1C1 = "=IF(RC[-2]+RC[-1]=0,"""",R[-1]C+RC[-2]-RC[-1])"
  18.                             End If
  19.                             Application.EnableEvents = False
  20.                             .Cells(theRow, 1).Select
  21.                             Application.EnableEvents = True
  22.                         End If
  23.                     End If
  24.                 End With
  25.             End If
  26.         End If
  27.     End With
  28. End Sub
复制代码


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 06:41 , Processed in 0.035811 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表