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、
其实要实现 作表中在录入数据后目标单元格自动计算,但不需要别人看见目标单元格中的公式
可用工作表保护配合单元格锁定来解决
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、
其实要实现 作表中在录入数据后目标单元格自动计算,但不需要别人看见目标单元格中的公式
可用工作表保护配合单元格锁定来解决
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
End If
End Sub'状态栏写的有进度
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
添加回答
举报