excel - 在运行宏之前单击的单元格旁边添加列
问题描述
我希望每个人都做得很好?我目前正在处理 Excel VBA 任务(我第一次使用 VBA,所以如果我问了一些愚蠢的问题,我很抱歉)。我正在研究近 2 天的一件事,但在任何地方都找不到解决方案,那就是如何通过 VBA 在 Excel 工作表中添加列。更准确地说:我不想在一个特定位置(例如“A:B”)添加列,而是单击一个单元格,运行宏,它将在该单元格旁边添加 77 列。例如,假设我单击单元格 B2 并运行宏,我希望从 C 列开始有 77 个空列。我也在研究“ActiveCell”,但没有得到任何结果。
我发现到目前为止最有用的宏是:
Sub C_SpaltenEinfügen()
Dim Start As Integer
Start = 2
Range(Cells(1, Start), Cells(1, Start + 77)).EntireColumn.Insert
End Sub
但我无法将它从 Start = 2 更改为 ActiveCell 或任何接近的值,因此它只会从 B 列开始。由于数据集非常大(目前从 A 列到 ARW),计算所有起点将不是很有效。
我真的很感谢你的时间和帮助!
非常感谢,莉亚
解决方案
请注意,如果要添加 77 行,则将当前添加到 76 行,因为第一行是初始插入。这可以通过双击第 1 行来实现:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row = 1 Then
Range(Columns(Target.Column + 1), Columns(Target.Column + 1 + 76)).Insert
Cancel = True
End If
End Sub
您说如果您选择它,您希望它位于右侧,因此偏移.Column+1
列以便您可以使用右侧的列,例如,您双击 B1 并在 C 列前面插入 77 列。为清楚起见,将 +1 留在范围的其余部分。
插入后的使用Cancel=True
是这样您就不会输入您双击的单元格来开始编辑它。
请注意我在哪里选择BeforeDoubleClick
...在为 选择工作表模块后Sheet1 (Sheet1)
,我使用下拉菜单,Worksheet
在左侧选择,然后在右侧选择BeforeDoubleClick
:
推荐阅读
- c++ - 枚举语法错误:缺少标记名称和常量
- node.js - 如何使用 nodejs 使用对象 id 引用在 mongo 中查找?
- vue.js - 具有动态列的元素 UI 表
- javascript - 什么 DOM 事件在 React 中加载图像和其他组件?
- c# - 在 XAML 中声明的按钮不能在类中引用
- sql - 如何获取xml节点的数量
- spring-boot - 在 AWS (EKS) 上运行 MySQL 集群支持、支持 HTTPS 的 Spring Boot 应用程序
- react-native - Redux mapStateToProps 只调用一次
- ios - Swift 单元测试:检查同一类的两个对象是否相等
- python-3.x - 将 csv 文件读取到 jupyter 时忽略索引