Excel中的vba复制粘贴合并单元格的问题.

要把m行sheet1的A1~D1合并单元格区域的内容移动到sheet2的E1~F1区域中,要通过双击选中A1~D1的单元格内容-复制,然后双击激活E1~F1直接粘贴进去来实现,如何写vba呢?

    如果是把一列数据粘贴到另一列均为两行合并的单元格中,比如C1的数据到A1、A2、A3合并的单元格里面,C2的数据到A4、A5、A6合并的单元格里面,

    在A1、A2、A3合并的单元格里面里面输入:=OFFSET(C$1,INT((ROW(C1)-1)/3),)。

    如果是2行合并成一格的,把公式中的3改成2就行,也就是说,几行合并成一格的就改成几。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-09
1、工作表的删除
单击“编辑→删除工作表”命令,然后单击“确定”按钮,则这个表将从工作簿中永久删除。 注意:“删除工作表”命令是不能还原的,删除的工作表将不能被恢复。

2、快速选择单元格
在选择单元格(行,列)时,同时按住Shift键可以选中连续的单元格(行、列)。 在选择单元格(行、列)时,同时按住Ctrl键可以选中不连续的单元格(行、列)。
3、快速选定Excel区域(微软Office技巧大赛获奖作品)
在Excel中,要想在工作簿中快速选定某块区域,只需单击想选定的区域的左上角单元格,同时按住Shift键不放,再单击想选定的区域的右下角单元格即可。另外:按住Ctrl键再用鼠标可任意选定多个不相邻的区域。 事实上选定区域和顺序无关,只需首先选定矩形区域的一个角的单元格,在按下Shift的同时单击对角单元格。
第2个回答  2011-05-09
其实,合并单元格的数据在左上角单元格内,因此可以使cells(1,5)=cells(1,1)就是你要的内容了追问

因为合并的格式很乱很复杂,需要直接选中内容复制,然后直接粘贴,不然不知道什么地方就出错了

追答

据我所知,宏不能体现说的双击激活复制,粘贴。
你试着录制宏看看,都转换成值计算了
你理清数据格式,再写宏吧

第3个回答  2011-05-09
用单元格被双击事件完成即可
Worksheet.BeforeDoubleClick 事件追问

可否详解,这个真的对我很重要,谢谢

追答

以下代码放到sheet1下。当你双击sheet1A1单元格时,sheet2E1就粘贴了sheet1A1的数据
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Ma As Range
Dim Ma1 As Range
Dim T As String
Set Ma = Range("A1").MergeArea
If Range("A1").MergeCells Then
T = Ma.Cells(1, 1).Value
With Sheets("sheet2")
Set Ma1 = .Range("E1").MergeArea
If .Range("E1").MergeCells Then
Ma1.Cells(1, 1) = T
End If
End With
End If
End Sub
你如果是要sheet1A1双击复制,再sheet2E1双击就赋值,把这个代码分开为两个,把T定义为全局变量。

本回答被提问者采纳
第4个回答  2011-05-09
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("sheet2").Range("E1").Value = Sheets("sheet1").Range("A1").Value
Cancel=true
End Sub
合并单元格的值,就是第一个单元格的值,不用copy操作,用=直接赋值过去
相似回答