关于excel中vba的变量填充问题,求高手正解 5
PrivateSubCommandButton1_Click()Sheet25.Select'a表Sheet25.Range("a5:o2000").ClearConte...
Private Sub CommandButton1_Click()
Sheet25.Select 'a表
Sheet25.Range("a5:o2000").ClearContents '清除表内内容
Sheet32.Select 'b表
Sheet32.Range("A5").Select
v1 = Sheet32.Range("c5").End(xlDown).Row
Sheet32.Range(Sheet32.Cells(5, 2), Sheet32.Cells(v1, 15)).Copy
Sheet25.Select
Sheet25.Range("b5").Activate
Sheet25.Range("b5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '将b表内容粘贴到a表
v3 = Sheet25.Range("c5").End(xlDown).Row + 1 '增加汇总合计
Sheet25.Range(Sheet25.Cells(v3, 2), Sheet25.Cells(v3, 2)).Value = "b表合计:"
Sheet25.Range(Sheet25.Cells(v3, 2), Sheet25.Cells(v3, 2)).Font.Bold = True '合计加粗
Sheet25.Cells(v3, 5).Formula = "=Sum(b表!E:E)" 'b表E列求和数值显示与a表汇总
问题是我想在Sheet25.Cells(v3, 5)单元格后面本行内横向填充公式
我知道填充selection.autofill destination:=range(" "),type:=xlfilldefault 可是我这个是变动的单元格,如何写呢,我是自学vba,还请高手正解。感谢
我这个问题,需要从n多个B表取数到A表明细及汇总。望大家帮忙,谢谢了,就差填充这句了,我不会写引用填充,因为都不是固定的。 展开
Sheet25.Select 'a表
Sheet25.Range("a5:o2000").ClearContents '清除表内内容
Sheet32.Select 'b表
Sheet32.Range("A5").Select
v1 = Sheet32.Range("c5").End(xlDown).Row
Sheet32.Range(Sheet32.Cells(5, 2), Sheet32.Cells(v1, 15)).Copy
Sheet25.Select
Sheet25.Range("b5").Activate
Sheet25.Range("b5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '将b表内容粘贴到a表
v3 = Sheet25.Range("c5").End(xlDown).Row + 1 '增加汇总合计
Sheet25.Range(Sheet25.Cells(v3, 2), Sheet25.Cells(v3, 2)).Value = "b表合计:"
Sheet25.Range(Sheet25.Cells(v3, 2), Sheet25.Cells(v3, 2)).Font.Bold = True '合计加粗
Sheet25.Cells(v3, 5).Formula = "=Sum(b表!E:E)" 'b表E列求和数值显示与a表汇总
问题是我想在Sheet25.Cells(v3, 5)单元格后面本行内横向填充公式
我知道填充selection.autofill destination:=range(" "),type:=xlfilldefault 可是我这个是变动的单元格,如何写呢,我是自学vba,还请高手正解。感谢
我这个问题,需要从n多个B表取数到A表明细及汇总。望大家帮忙,谢谢了,就差填充这句了,我不会写引用填充,因为都不是固定的。 展开
展开全部
兄弟啊,我也是自学VBA差不多两年多了,说的不好请指正。我看你的代码是执行命令后把b表的内容复制到a表,再在a表中求和,公式的引入内容是b表中的。我觉得可以不用这么复杂,建议多学习用用do while循环命令和for next循环命令,以及if命令,再学一下对象方法,比如Worksheet_SelectionChange(ByVal Target As Range) 方法等,我相信可以很快上手的。
至于本题,我觉得就用cpoy paste命令也可以解决的,虽然我从不这么用来解决问题,不一定非要用填充,你说呢。
可以试试用
cells(v3,5).select
Selection.AutoFill Destination:=Range(cells(v3,5),cells(v3,15)), Type:=xlFillDefault
或
cells(v3,5).copy
Range(cells(v3,6),cells(v3,15)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
如果单元格(v3,5)中是公式的话,2个的结果应该是一样的
至于本题,我觉得就用cpoy paste命令也可以解决的,虽然我从不这么用来解决问题,不一定非要用填充,你说呢。
可以试试用
cells(v3,5).select
Selection.AutoFill Destination:=Range(cells(v3,5),cells(v3,15)), Type:=xlFillDefault
或
cells(v3,5).copy
Range(cells(v3,6),cells(v3,15)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
如果单元格(v3,5)中是公式的话,2个的结果应该是一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询