在Excel中使用VBA实现:如果A1有值,自动在B1填充公式,如果没值则不填充公式
在Excel中使用VBA实现如下功能:在某个表页共有2列,在A列判断是否有值,如果有值在B列对应行填充一个公式,如A1有值,自动在B1填充公式,如果没值则不填充公式下面的...
在Excel中使用VBA实现如下功能:在某个表页共有2列,在A列判断是否有值,如果有值在B列对应行填充一个公式,如A1有值,自动在B1填充公式,如果没值则不填充公式
下面的朋友,我填充公式是这样的:
=IF(A1="","",IF(VLOOKUP(A1,Sheet1!A:A,1,FALSE)=A1,"已使用","未使用"))
主要是判断A1的值在表sheet1的A列中是否有用过
上面的公式一直判断到A999999,就是A列的最后一行,然后再B列填充的公式是到B列最后一行
还有就是,如果A1有值,B1自动填充有公式,或者有个按钮自动填充公式 展开
下面的朋友,我填充公式是这样的:
=IF(A1="","",IF(VLOOKUP(A1,Sheet1!A:A,1,FALSE)=A1,"已使用","未使用"))
主要是判断A1的值在表sheet1的A列中是否有用过
上面的公式一直判断到A999999,就是A列的最后一行,然后再B列填充的公式是到B列最后一行
还有就是,如果A1有值,B1自动填充有公式,或者有个按钮自动填充公式 展开
3个回答
展开全部
Public Sub 自动填充公式()
'本例功能:如果A列有值则在同行B列填写计算其平方的公式;反之则不填充公式。
For i = 1 To 10
If Cells(i, 1) <> "" Then Cells(i, 2) = "=A" & i & "^2"
Next i
End Sub
'本例功能:如果A列有值则在同行B列填写计算其平方的公式;反之则不填充公式。
For i = 1 To 10
If Cells(i, 1) <> "" Then Cells(i, 2) = "=A" & i & "^2"
Next i
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For x = 1 To 65536
If Sheet2.Cells(x, 1) <> "" Then
Sheet2.Cells(x, 2).FormulaR1C1 = "=IF(VLOOKUP(RC[-1],Sheet1!C[-1],1,FALSE)=RC[-1],""已使用"",""未使用"")"
End If
Next
Application.ScreenUpdating = True
End Sub
加按键的方法,以上是代码
对了,没有999999行,只有65536行吧
Application.ScreenUpdating = False
For x = 1 To 65536
If Sheet2.Cells(x, 1) <> "" Then
Sheet2.Cells(x, 2).FormulaR1C1 = "=IF(VLOOKUP(RC[-1],Sheet1!C[-1],1,FALSE)=RC[-1],""已使用"",""未使用"")"
End If
Next
Application.ScreenUpdating = True
End Sub
加按键的方法,以上是代码
对了,没有999999行,只有65536行吧
追问
我双击点到最后一行,是100多万呢?
追答
我是用宏测试过的,到65537报错了。电子表格是有行数限制的。
对了,我的是EXCEL2003 65536行
EXCEL2007 1048576行,你可以把数改过来的。
还有什么不明白的吗。
还有。用宏填充公式的方式,已经有了对A列是否有值的判断,公式中就不用再加入这个判断了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
早就应该有补充问题了。
Sub test()
Application.ScreenUpdating = False
For i = 1 To Range("A1048576").End(3).Row
If Cells(i, 1) <> "" Then
Cells(i, 2).FormulaR1C1 = "=IF(RC[-1]="""","""",IF(COUNTIF(Sheet1!C[-1],RC[-1]),""已使用"",""未使用""))"
End If
Next
Application.ScreenUpdating = True
End Sub
Sub test()
Application.ScreenUpdating = False
For i = 1 To Range("A1048576").End(3).Row
If Cells(i, 1) <> "" Then
Cells(i, 2).FormulaR1C1 = "=IF(RC[-1]="""","""",IF(COUNTIF(Sheet1!C[-1],RC[-1]),""已使用"",""未使用""))"
End If
Next
Application.ScreenUpdating = True
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询