编写Excel宏 轻松完成单元格数据互换

  如何实现Excel表格中两个单元格区域间的数据交换呢?通常我们使用剪切粘贴的方法来完成,但这个方法比较繁琐,如果数据区域较大还容易出错。下面我们试着来编写一个可以实现该功能的“宏”吧。

  打开“工具”菜单中的“宏”,选择“录制新宏”命令,在个人宏工作簿中(Personal.xls)创建一个名为Exchange 的宏,代码如下:

 


代码:

  '判断用户是否选择了两个单元格或单元格区域
If Selection.Areas.Count = 2 Then
Set XR = Selection.Areas(1)
Set YR = Selection.Areas(2)
'判断选区是否重叠
If Not Intersect(XR, YR) Is Nothing Then
Result = MsgBox(" 选择区域有重叠!交换后重叠区域的数据将有部份被覆盖!" & vbCrLf & " 是否继续?", vbYesNo)
If Result = vbNo Then Exit Sub
End If
If XR.Rows.Count = YR.Rows.Count And XR.Columns.Count = YR.Columns.Count Then
'交换选区
SZ1 = XR.Formula
SZ2 = YR.Formula
XR = SZ2
YR = SZ1
Else
MsgBox "选择的两个数据区域大小不一样!请确认重新选择!"
End If
Else
MsgBox "请按住Ctrl键选择两个要交换的数据区域!"

  自定义一个工具栏按钮,并将创建的宏指定给该按钮即可(如图)。如果选中的两个单元格的区域大小(单元格个数)不同或选择的数据少于2个,系统将会给出相应的出错提示。

时间: 2025-01-19 13:23:56

编写Excel宏 轻松完成单元格数据互换的相关文章

Excel 2010中创建单元格数据图表

您能想象折线图.柱状图这些图表被放在一个小小的单元格中的样子吗?Excel 2010的迷你图功能为您提供了这样的便捷体 验,让您高效便捷地创建单元格数据图表! 1.打开您想要创建迷你图的Excel工作簿(如果它是Excel 97-2003 工作簿,请 先点击"文件"按钮,转到后台视图,在"信息"页面中,点击"转换"按钮并根据提示保存.xlsx 格式的工作簿),单击"插入"标签页: 2.点击"迷你图"功能组里

保护Excel表格的隐藏单元格数据不被删除

如果Excel表格中含有隐藏行或者隐藏列,我们简单用全选所有单元格再按"Del"键删除数据的时候,会发现隐藏单元格的数据也跟着被删除了. 今天我们介绍一个Excel中的数据删除小技巧--在批量删除数据时保护隐藏单元格的数据不被删除. 比如下图的Excel表格,有五列数据. 现在我们隐藏C列和D列的数据(用鼠标右键点击C,从菜单中选择"隐藏"). 如果我们只是简单地全选所有数据,按下"Del"键,当我们展开隐藏列时,会发现所有的数据都被删除了.

如何在Excel中隐藏指定单元格数据

对于Excel工作表中的某些数据我们可能需要隐藏,不被其他人看到,虽然可以通过将单元格字体设置为与背景色同色的方法予以隐藏,但是仍然不够安全. 这时候可以采用一种更加安全的方法,具体操作如下:选择要隐藏数据的单元格,右击鼠标,从弹出的快捷菜单中选择"设置单元格格式"命令,在弹出的设置窗口中,选择"数字"标签中的"自定义"选项,然后在右侧"类型"中输入自定义格式";;;",最后单击"确定"

编写“宏”让Excel自动合并选中单元格内容

在用Excel整理表格数据时,希望能够自动合并选中区域内所有单元格的内容,但是Excel软件自带的合并功能无法满足这个要求,应该怎么办呢? 我们可以编写一个"宏"来实现,它可以巧妙地保存选区中所有单元格内的数据,通过循环赋值到一个变量中,最后再将结果输出到合并后的单元格内. 代码如下: Sub 合并单元格() '关闭屏幕更新和警告提示 Application.ScreenUpdating = False Application.DisplayAlerts = False Dim i%

Excel怎么把多个单元格数据合并到1个单元格里?

  Excel怎么把多个单元格数据合并到1个单元格里? 1.首先打开要使用的表格. 2.然后选择A列和B列的数据到C列.选择A列的数据加上&"-"&和B列的数据 3.把信息都输入之后需要点击保存就就可以得到我们所需要的数据. 4.按照C列的数据选中单元格然后往下拉 5.然后就可以得到整体的数据啦,是不是很方便

填充Excel表中上方非空单元格数据的方法

填充Excel表中上方非空单元格数据的方法   1.选择范围 将需要填写的空单元格以及其上方单元格一起选中 2.定位空值 同时按住ctrl+G,跳出"定位"对话框,点击"定位条件" 在弹出的"定位条件"对话款,选中"空值',并确定,这样,空白单元格全被选中 3.输入公式 输入"="和第一个空单元格上方单元格的地址(A2),如下图,输入完成后,同时按住ctrl+enter,即可

Excel中如何单元格数据标注

  1首先打开所需编辑的Excel工作薄,找到需要编辑标注的单元格或者行列. 2在菜单栏内找"开始"-"wen文",打开里面的命令分析里面的操作意识.显示拼音字段 ,编辑字段及拼音设置,从排列顺序上知道显示第一,编辑第二,设置在前. 3开始操作了,鼠标定位在单元格中,然后再点击"wen文"直接就可以看到单元格的变化了,大家试试,是不是单元格空间变大了呢?这一步是为了给编辑标注留出空间哦~~ 4接着继续点击"wen文",打开命令

c#操作excel,怎么往单元格中写数据?

问题描述 c#操作excel,怎么往单元格中写数据? //往指定单元格中填数据 sheet.Cells[1, 1]= num; 我用这种方式往excel中写数据为什么一直都不行? 求大神指点正确方法··· 解决方案 sheet.Cells[1, 1]得到的是Cell类型的对象,不是里面的值,要知道,一个单元格除了值,还有颜色 字体 格式 公式 等等很多属性呢 sheet.Cells[1, 1].SetCellValue(num) 注意格式和类型 解决方案二: http://www.cnblogs

C#读取Excel指定单元格数据问题??

问题描述 C#读取Excel指定单元格数据问题??比如我只想读取Excel表格的A16单元格的内容,我应怎么处理呢? 解决方案 解决方案二:那位大侠来帮下我?解决方案三:up解决方案四:该回复于2009-05-13 17:36:53被版主删除解决方案五:m_excelWorksheet1.Cells[writetart,1]=dtImportData1.Rows[i]["registername"].ToString();解决方案六:Rangerng=(Range)Worksheet.