为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何用Function函数编写VBA代码?

请问该如何用Function函数编写VBA代码?

郎朗坤 2019-07-08 09:05:51
如何用Function函数编写VBA代码
查看完整描述

5 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

1、
Function gs()
gs = ActiveSheet.Cells(ActiveCell.Row, 1) + ActiveSheet.Cells(ActiveCell.Row, 2) + ActiveSheet.Cells(ActiveCell.Row, 3)
End Function
在D列及其右边列输入 =gs()
2、
Function gs(a, b, c)
gs = a + b - c '把公式的计算过程写到这里,输入公式时只要传入参数
End Function
在D1输入 =gs(A1,B1,C1)
复制填充公式
3、
其实要实现 作表中在录入数据后目标单元格自动计算,但不需要别人看见目标单元格中的公式
可用工作表保护配合单元格锁定来解决

查看完整回答
反对 回复 2019-07-14
?
RISEBY

TA贡献1856条经验 获得超5个赞

1、
Function gs()
gs = ActiveSheet.Cells(ActiveCell.Row, 1) + ActiveSheet.Cells(ActiveCell.Row, 2) + ActiveSheet.Cells(ActiveCell.Row, 3)
End Function
在D列及其右边列输入 =gs()
2、
Function gs(a, b, c)
gs = a + b - c '把公式的计算过程写到这里,输入公式时只要传入参数
End Function
在D1输入 =gs(A1,B1,C1)
复制填充公式
3、
其实要实现 作表中在录入数据后目标单元格自动计算,但不需要别人看见目标单元格中的公式
可用工作表保护配合单元格锁定来解决



查看完整回答
反对 回复 2019-07-14
?
浮云间

TA贡献1829条经验 获得超3个赞

‘直接赋值就可以
Sub run()
For i = 1 To 100
Sheets("Sheet1").Cells(i, 4) = "=A" & i & "+B" & i & "-C" & i
Next
End Sub

查看完整回答
反对 回复 2019-07-14
?
函数式编程

TA贡献1807条经验 获得超9个赞

Sub test()

    Dim i, j As Integer

    Dim a, b As String

    For i = 1 To ActiveSheet.UsedRange.Rows.Count

        If Range("A" & i) = 1 Then

            b = Range("B" & i).Value

            For j = 1 To ActiveSheet.UsedRange.Rows.Count

                If Int(j / 1000) * 1000 = j Then Application.StatusBar = "A 列进度:" & i & "    " & "C列进度:" & j

                a = Range("C" & j).Value

                If InStr(1, a, b) <> 0 Then

                    Range("C" & j).Value = ""

                End If

                DoEvents

            Next

        End If

    Next

End Sub'状态栏写的有进度




查看完整回答
反对 回复 2019-07-14
?
慕神8447489

TA贡献1780条经验 获得超1个赞

全数组,速度稍快些:
Sub test()
Dim arr, brr, i&, j&, m&, n&
m = Cells(Rows.Count, "b").End(xlUp).Row
n = Cells(Rows.Count, "c").End(xlUp).Row
arr = Range("A1:B" & m)
brr = Range("C1:C" & n)
For i = 1 To n
For j = 1 To m
If arr(j, 1) = 1 Then
If InStr(brr(i, 1), arr(j, 2)) > 0 Then
brr(i, 1) = ""
Exit For
End If
End If
Next
Next
Cells(1, "c").Resize(n, 1) = brr
MsgBox "OK!"
End Sub



查看完整回答
反对 回复 2019-07-14
  • 5 回答
  • 0 关注
  • 1213 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信