Excel将一个单元格的值复制到另一个基于第三个单元格的值
我试图从一个范围(AG2:AG30)
的一个单元复制基于第三个单元(D2:D30)
的值从相似范围(AB2:AB30)
的另一个单元的值。
- 列D的值是从下拉框中select的,列AB的值是一个公式。
- 我不需要将公式复制到列AG中的值。 列D的值将是
"Surgery"
,"OR"
,"ER"
,"PICU"
和"Other"
。
如果有人可以帮助一个VBA代码,可以做到这一点,我将不胜感激。 谢谢!
我认为这是更多….正是你想要的:)
如果您有任何问题,请发表评论。 为了编码的清晰和易于定制,我把它分开了。
Option Explicit 'module-scope variables Dim range1 As Range Dim range2 As Range Dim range3 As Range Dim i As Long Dim string1 As String Dim address1 As String Dim address2 As String Sub derp() 'set your sheet here or just let it work on active sheet Set range1 = Range("AG2:AG30") Set range2 = Range("AB2:AB30") Set range3 = Range("D2:D30") For i = 0 To range3.Rows.Count string1 = range3(i).Value address1 = range1(i).Address address2 = range2(i).Address Select Case string1 Case string1 = "Surgery" 'do stuff here Call Valueswap(address1, address2) Case string1 = "OR" Case string1 = "ER" Case string1 = "PICU" Case string1 = "Other" Case Else 'value in column D yields error, put a message here End Select Next End Sub Function Valueswap(address1 As String, address2 As String) 'puts second address value into the first address Range(address2).Value = Range(address1).Value End Function
尝试以下
=IF(C2=1,B2,A2)
IF说如果第一个参数为真,你将显示第二个参数的值。 否则它会复制第三个参数。
在我的例子中,如果C2等于1,那么函数将返回B2。 否则A2。