Excel vba 把某个单元格cells(1,1)的公式下拉到cells(100,1)怎么写?

Excel vba 把某个单元格cells(1,1)的公式下拉到cells(100,1)怎么写?

  像这样就可以:

Sub 宏1()
For i = 1 To 100
Cells(i, 1) = 1
Next
End Sub

  里面的=1就是你说的公式,cells(i,1)的最终结果就是1到100行都填充这个公式

追问

我知道这个,主要是公式比如A1=B1+C1

里面是写
"B"&i&"C"&i

这样也太傻了,有的公式我写了好十多个函数,怎么可以一个个改吗?

追答

你贴一下你的完整的代码,看看.这样有点不是很清晰.

追问

这么多不能一个个改唉,要是少的话还行..

追答

你的意思是有多列,都要往下填充到100行去?

追问

对对,就是好几十列,拉到A列最大活动单元格

追答

那试试这个(把下面的range里的区域改成你的实际区域):

Sub 宏1()
Row = Range("A65536").End(3).Row
    Range("B1:E" & Row).FillDown
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-16

下面的代码就可以:

Sub 宏1()
    Range("A1").Select
    Selection.AutoFill Destination:=Range("A1:A100"), Type:=xlFillDefault
    Range("A1:A100").Select
End Sub

追问

你这个是自己录的啊!

追答

是录的,我的VBA代码多数都是录制的。话说,这个录制的代码满足你的要求么?

追问

哈哈,我主要是学习用的.这样直接搬运学不到东西.

追答

你这里来提问,让别人给你代码,无论他录的还是写的,对你有区别么

追问

我会分析的,我以前都是录,后来套用别人的,现在会写点了..

追答

我估计几乎所有的高手都是从录开始的,比如录了上面的代码,你可以如下简写:
Range("A1").AutoFill Destination:=Range("A1:A100"), Type:=xlFillDefault
一个语句完成了,懂了什么叫做.Select、Selection就能做到这一步,后面的语句一看就不是必须的。

如果在AutoFill上按下F1,看看Type有哪些可选项,你就可以写出无法录制得来的代码,就成为高手了。

此外,还可以利用End、UsedRange等方法获得工作表有效内容的行数,这样就不用是100了,而实现了填充到底部的功能。

关键不是代码怎么来,而是看见别人的代码后是否思考,只要思考就会成长。不好意思,说多了,祝你节日快乐。

本回答被提问者采纳