要把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å°±è¡ï¼ä¹å°±æ¯è¯´ï¼å è¡å并æä¸æ ¼çå°±æ¹æå ã
因为合并的格式很乱很复杂,需要直接选中内容复制,然后直接粘贴,不然不知道什么地方就出错了
追答据我所知,宏不能体现说的双击激活复制,粘贴。
你试着录制宏看看,都转换成值计算了
你理清数据格式,再写宏吧
可否详解,这个真的对我很重要,谢谢
追答以下代码放到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定义为全局变量。