Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2186|回复: 2

[已解决]请高手帮忙解决把公式写入单元格的难题

[复制链接]
发表于 2010-6-29 02:01 | 显示全部楼层 |阅读模式
我附件上有一个班级工作表,我想实现的功能是当d列出现姓名的时候,e列写入f+SUM(k:R)+SUM(t:ae),f列写入g+h,g列则出现IF(M<>"",I*6.5,I*7),曾经有一个高手提供了代码,但由于我笨的原因,修改成这样
Sub Macro1()
r = [d65536].End(xlUp).Row
    Range(Cells(4, 5), Cells(65536, 5)).ClearContents
    If r >= 4 Then
        For i = 4 To ae
            If Trim(Cells(i, 4)) <> "" Then
                Cells(i, 5).FormulaR1C1 = "=RC[1]+SUM(RC[6]:RC[13]+SUM(RC[15]:RC[26])"
                Cells(i, 6).FormulaR1C1 = "=RC[1]+RC[2])"
            Else
                Cells(i, 5) = ""
                Cells(i, 6) = ""
            End If
        Next i
    End If
End Sub
就出错,在所希望的单元格内并没有出现公式,所以恳请高手帮忙解决,谢谢高手的帮忙。
QaDHFmgB.rar (12.7 KB, 下载次数: 3)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-6-29 06:06 | 显示全部楼层    本楼为最佳答案   

教你个另一个输入公式的方法

 Range("D3").Formula = "=a1+b1"

这个比R1CI格式,数列数直观多了

用了行变量就成了Range("D"& r ).Formula = "=a" & r & "+b" & r

Sub Macro1()
    Range(Cells(4, 5), Cells(65536, 5)).ClearContents
    For i = 4 To [d65536].End(xlUp).Row
            If Cells(i, 4) <> "" Then
                Cells(i, 5).FormulaR1C1 = "=RC[1]+SUM(RC[6]:RC[13])+SUM(RC[15]:RC[26])"
                Cells(i, 6).FormulaR1C1 = "=RC[1]+RC[2]"
            Else
                Cells(i, 5) = ""
                Cells(i, 6) = ""
            End If
    Next i

End Sub

LZ的FOR循环和IF判断语句用反了,对变量的运用也用错了,建议去报名VBA预备班

可能中间的公式有错,LZ再看一下,我就照LZ的代码改了改,没看公式的逻辑关系

[此贴子已经被作者于2010-6-29 6:55:34编辑过]
回复

使用道具 举报

发表于 2010-6-29 07:31 | 显示全部楼层

JFVAysUm.rar (13.83 KB, 下载次数: 6)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 23:32 , Processed in 0.256289 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表