我試圖根據第三個單元格的值(D2:D30)
從範圍(AG2:AG30)
中的一個單元格複製類似範圍(AB2:AB30)
中的另一個單元格的值。Excel將一個單元格的值複製到另一個基於第三個單元格的值
- D列的值從下拉框中選擇,而AB列的值是公式。
- 我不需要將公式複製到列AG的值中。 D列的值爲
"Surgery"
,"OR"
,"ER"
,"PICU"
和"Other"
。
如果任何人可以幫助一個vba代碼,可以做到這一點,我將不勝感激。謝謝!
我試圖根據第三個單元格的值(D2:D30)
從範圍(AG2:AG30)
中的一個單元格複製類似範圍(AB2:AB30)
中的另一個單元格的值。Excel將一個單元格的值複製到另一個基於第三個單元格的值
"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。
這確實奏效,但前提是所有值都已經在單元格中。我想我必須將公式變成工作表上的宏或宏按鈕。這可以在所有數據輸入後運行。謝謝! – pmgibs
我的第一個想法是,你有一個標準的IF公式,或可能是一個CHOOSE公式而不是VBA的靜態單元格。也許如果你可以添加一些關於D列標準的細節,它會變得更加清晰(有時當我在VBA中工作時,如果任務被隔離,我會自動將代碼與任務複雜化,當它只是單元格中的公式時)。 – nfloria
我在列AG中使用嵌套IF公式。列D的標準只是從數據列表中選擇。我想我要找的更好的描述是這樣的。當我從列D中選擇「手術」時,如果在列D中選擇了「或」,則列AB中的值將複製到列AG,則列AB的值將複製到AH。移動一列在AI,AJ,AK列D的每個可能的值。 – pmgibs
嗯,這可能是我現在頭腦中想的太多。如果是這樣,我的道歉。如果沒有我更好的理解,如果有阻止它的原因,我仍然會說你的選擇將包括嵌套的IF(或者自定義下拉列表的CHOOSE公式)或基本的VBA代碼來模仿它,例如SELECT CASE語句。 – nfloria