请问这段excel VBA代码该如何写?

题目如图所示,单个单元格写太麻烦了。有没有简洁的代码?不确定区域该如何引用?... 题目如图所示,单个单元格写太麻烦了。有没有简洁的代码?不确定区域该如何引用? 展开
 我来答
syx54
2018-11-30 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2738万
展开全部
假设你的数据表名为 Sheet1
打开你的EXCEL文件,按 ALL+F11 键,双击左面的Sheet1(Sheet1),进入VBA代码窗口,把下面的代码复制到代码窗口。
回到数据表Sheet1,请试试在A1:AU1任何一个单元格修改数据。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MaxL As Integer
'获取当前数据最大行号
MaxL = Excel.Application.ActiveWorkbook.Sheets("Sheet1").Range("A65535").End(xlUp).Row
If Not Intersect(Target, [a1:au1]) Is Nothing Then
For i = 1 To 47
If Excel.Application.ActiveWorkbook.Sheets("Sheet1").Cells(1, i).Value <> Excel.Application.ActiveWorkbook.Sheets("Sheet1").Cells(MaxL, i).Value Then
MaxL = MaxL + 1
Excel.Application.ActiveWorkbook.Sheets("Sheet1").Range("A" & CStr(MaxL) & ":AU" & CStr(MaxL)).Value = _
Excel.Application.ActiveWorkbook.Sheets("Sheet1").Range("A1:AU1").Value
Exit Sub
End If
Next i
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2018-11-30 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65810
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
x = Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("A1:AU1").Copy Cells(x, 1)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-11-30 · TA获得超过1663个赞
知道小有建树答主
回答量:6318
采纳率:30%
帮助的人:927万
展开全部
发你的文件来,我能写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式