怎样用Excel录制宏制作这种非完全重复的操作
这种情况下,每次向左和向下移动的格子数都要增加。所以怎样用录制宏来达成这种操作?A13写“Date”B13“Price”整个A列都放Date,整个B列都放Price.F4...
这种情况下,每次向左和向下移动的格子数都要增加。所以怎样用录制宏来达成这种操作?A13写“ Date” B13 “Price”整个A 列都放Date, 整个B列都放 Price.F4和G4是一组 Date和Price,F5和G5是一组 Date和Price.有非常多组Date和Price。要把它们全移到A列和B列下面。如何用Excel录制宏完成?
展开
2个回答
展开全部
'打开VBE,在“工程资源管理器”,双击“ThisWorkbook”
'在打开的“ThisWorkbook(代码)”窗口粘贴下面的代码。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Selection.Cells.Count = 1 Then
If Range(Target.Address) = "Date" Then
ad = Target.Address
Range(ad).Offset(0, 1).EntireColumn.Select
Selection.Formula = "Price"
Range(Target.Address).Offset(0, 0).EntireRow.Select
Selection.Formula = "Date"
End If
Else
End If
End Sub
追问
只允许直接录制宏或者编辑宏
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
发个模拟文件给我,正好有点无聊。
追问
关键是类似情况怎么处理,不需要完全一样文件。
因为移动的格子数每次都不一样,导致每次操作不同。而录制宏似乎只能复制相同的操作。
如何是用录制宏或者编辑宏来处理呢?
追答
哦,看来你会用宏,那我说说思路,
关键是准备工作,一是用宏找到源数据,比如查找Date在什么位置,
二是找到工作表已用数据的最后一行,然后在前两列输入标题即可。
因为数据源是二维格式,所以得用双循环,第一层用于列数据,用FOR循环,步长为2,也就是第两列循环一次。
第二层循环用于行,我认为用For+Each 再用End判断最后一行,即可。
在第二层循环过程中,将数据源数据,直接赋值给目标单元。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询