VBA在单元格内写入公式
如何用VBA在单元格里写入公式,并保证excel启动后将某几列写入公式,(具体的是D10-h10,然后是d11-h11,再将d11-h11选中,向下填充到100行)在退出...
如何用VBA在单元格里写入公式,并保证excel启动后将某几列写入公式,(具体的是D10-h10,然后是d11-h11,再将d11-h11选中,向下填充到100行)在退出excel时,先将写入的所有公式清除(或者填入某一个值比如说0)。
假如d10=LEFT(sheet1!E13,FIND("°",E13)-1))+MID(E13,FIND("∠",E13)+1,2)
d10-h10公式都不一样,
d11-h11公式也都不一样,也不同上面单元格的公式, 展开
假如d10=LEFT(sheet1!E13,FIND("°",E13)-1))+MID(E13,FIND("∠",E13)+1,2)
d10-h10公式都不一样,
d11-h11公式也都不一样,也不同上面单元格的公式, 展开
3个回答
展开全部
假定你要写公式的是2号工作表,在工作簿代码区粘贴以下代码即可:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(2).Range("D10:H100").Clear '清除公式
End Sub
Private Sub Workbook_Open()
Sheets(2).Range("A1:C3") = 0
Sheets(2).Range("D10").Formula = "=LEFT(sheet1!E13,FIND(" & """" & "°" & """" & ",E13)-1)+MID(E13,FIND(" & """" & "∠" & """" & ",E13)+1,2)"
Sheets(2).Range("E10").Formula = "=XXXX"
Sheets(2).Range("F10").Formula = "=XXXX"
Sheets(2).Range("G10").Formula = "=XXXX"
Sheets(2).Range("H10").Formula = "=XXXX"
Sheets(2).Range("D11").Formula = "=XXXX"
Sheets(2).Range("E11").Formula = "=XXXX"
Sheets(2).Range("F11").Formula = "=XXXX"
Sheets(2).Range("G11").Formula = "=XXXX"
Sheets(2).Range("H11").Formula = "=XXXX"
Sheets(2).Range("D11:H100").FillDown '下拉填充公式
End Sub
注意:1、代码中XXXX是你要写的公式。2、公式中在引号时进行一定处理如代码中例式。3、你举例的公式引用了下边单元格,而下边单元格又填充公式,这好像有些问题。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(2).Range("D10:H100").Clear '清除公式
End Sub
Private Sub Workbook_Open()
Sheets(2).Range("A1:C3") = 0
Sheets(2).Range("D10").Formula = "=LEFT(sheet1!E13,FIND(" & """" & "°" & """" & ",E13)-1)+MID(E13,FIND(" & """" & "∠" & """" & ",E13)+1,2)"
Sheets(2).Range("E10").Formula = "=XXXX"
Sheets(2).Range("F10").Formula = "=XXXX"
Sheets(2).Range("G10").Formula = "=XXXX"
Sheets(2).Range("H10").Formula = "=XXXX"
Sheets(2).Range("D11").Formula = "=XXXX"
Sheets(2).Range("E11").Formula = "=XXXX"
Sheets(2).Range("F11").Formula = "=XXXX"
Sheets(2).Range("G11").Formula = "=XXXX"
Sheets(2).Range("H11").Formula = "=XXXX"
Sheets(2).Range("D11:H100").FillDown '下拉填充公式
End Sub
注意:1、代码中XXXX是你要写的公式。2、公式中在引号时进行一定处理如代码中例式。3、你举例的公式引用了下边单元格,而下边单元格又填充公式,这好像有些问题。
追问
你这个看似可以
但还没达要求
就是在关闭不保存情况下,
我是想设置就算是在关闭不保存的情况下也执行这些宏。
展开全部
sheet().range().formual = "=LEFT(sheet1!E13,FIND("°",E13)-1))+MID(E13,FIND("∠",E13)+1,2)
"
这么写就行了,这样你打开的时候就有公式了
当你关掉的时候
sheet().range().value = "0"(或者其他啥的)
这里就把值给换掉了就不是公式了
"
这么写就行了,这样你打开的时候就有公式了
当你关掉的时候
sheet().range().value = "0"(或者其他啥的)
这里就把值给换掉了就不是公式了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sheet().range().formual = "=LEFT(sheet1!E13,FIND("°",E13)-1))+MID(E13,FIND("∠",E13)+1,2)
"
这么写就行了,这样你打开的时候就有公式了
当你关掉的时候
sheet().range().value = "0"(或者其他啥的)
这里就把值给换掉了就不是公式了
"
这么写就行了,这样你打开的时候就有公式了
当你关掉的时候
sheet().range().value = "0"(或者其他啥的)
这里就把值给换掉了就不是公式了
追问
D10-H10这样是可以,
D11-H11这样也可以
那要把D11-H11选中向下填充100行怎么办?我不可能每行每个单元格都去写一个公式吧
再说万一公式要更改怎么办?我的公式长的很,一个屏幕都放不下了。改起来很复杂的。
追答
你可以写个循环自动赋公式啊,哪有一行一行写公式的...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询