动态删除行和列

经常需要动态删除程序中的行和列,但通常很难获得。 Excel 2002(XP)中包含的VB-6帮助文件并不总是提供执行此操作所需的帮助。

通过记录宏,可以开发以下代码段:


Sub Macro1()
'
' Macro1 Macro
' Macro recorded 9/16/2009 by Ebernon
' 
'
    Rows("1:20").Select
    Selection.Delete Shift:=xlUp
End Sub 
但是,宏记录的行是使用静态“ A1参考”注释(Excel的默认值)确定的,这不允许在程序中删除“动态”行设置。 您可以将引用“ 1:20”更改为数字或变量,但随后可以引用单个Row。

要解决此问题,以下代码片段提供了要使用“范围对象”方法删除的行的动态设置:


Sub Macro2()
'
' Macro2 Macro
' Macro recorded 9/16/2009 by Ebernon
' 
'
    N1 = 20
    N2 = 1
    Range(Rows(N1), Rows(N2)).Select
    Selection.Delete Shift:=xlUp
End Sub 
请注意,开始行和结束行N1和N2不必按任何顺序排列,因为Excel中的范围对象会自动对此进行调整。 而且,现在可以在程序中或通过操作员输入的数据来设置N1和N2。

对于列,只需将“ Range(Columns(N1),Columns(N2))。Select”替换为要删除的范围。

最后的注意:删除添加了链接的单元格时要小心,这将导致在链接到已删除单元格的单元格或范围中出现错误。

编程愉快!

From: https://bytes.com/topic/visual-basic/insights/874304-dynamic-deletions-rows-columns

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用DataGridView在C#中动态增加删除,以及增加按钮列,可以按照以下步骤: 1. 添加DataGridView控件到窗体中。 2. 设置DataGridView的属性,如Name、Dock、ColumnHeadersDefaultCellStyle等。 3. 创建数据源,可以使用List或DataTable等。 4. 绑定数据源到DataGridView中。 5. 在窗体加载事件中,设置DataGridView的Columns。 6. 在需要的时候,动态增加删除。 7. 在需要的时候,增加按钮列。 下面是代码示例: ```csharp // 创建数据源 List<Student> students = new List<Student>(); students.Add(new Student() { Name = "小明", Age = 18, Gender = "男" }); students.Add(new Student() { Name = "小红", Age = 20, Gender = "女" }); students.Add(new Student() { Name = "小刚", Age = 19, Gender = "男" }); // 绑定数据源到DataGridView中 dataGridView1.DataSource = students; // 在窗体加载事件中,设置DataGridView的Columns private void Form_Load(object sender, EventArgs e) { // 设置自动生成列为false,否则会生成数据绑定的列 dataGridView1.AutoGenerateColumns = false; // 添加文本列 DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn(); nameColumn.DataPropertyName = "Name"; nameColumn.HeaderText = "姓名"; dataGridView1.Columns.Add(nameColumn); DataGridViewTextBoxColumn ageColumn = new DataGridViewTextBoxColumn(); ageColumn.DataPropertyName = "Age"; ageColumn.HeaderText = "年龄"; dataGridView1.Columns.Add(ageColumn); DataGridViewTextBoxColumn genderColumn = new DataGridViewTextBoxColumn(); genderColumn.DataPropertyName = "Gender"; genderColumn.HeaderText = "性别"; dataGridView1.Columns.Add(genderColumn); } // 动态增加 private void btnAdd_Click(object sender, EventArgs e) { students.Add(new Student() { Name = "小李", Age = 21, Gender = "男" }); dataGridView1.DataSource = null; dataGridView1.DataSource = students; } // 动态删除 private void btnDelete_Click(object sender, EventArgs e) { int rowIndex = dataGridView1.CurrentCell.RowIndex; if (rowIndex >= 0) { students.RemoveAt(rowIndex); dataGridView1.DataSource = null; dataGridView1.DataSource = students; } } // 增加按钮列 private void btnAddButtonColumn_Click(object sender, EventArgs e) { // 添加按钮列 DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn(); buttonColumn.HeaderText = "操作"; buttonColumn.Text = "删除"; buttonColumn.UseColumnTextForButtonValue = true; dataGridView1.Columns.Add(buttonColumn); } ``` 其中,Student是一个自定义的类,包含Name、Age、Gender三个属性: ```csharp public class Student { public string Name { get; set; } public int Age { get; set; } public string Gender { get; set; } } ``` 以上代码可以实现在C#中点击按钮用DataGridView动态增加删除,并且增加按钮列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值