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。