2017-06-05 111 views
-1

我在列A中有字符串數據,列B中有數字值。我也有列O到Z,它們當前是空白的 - 這些列有標題1, 2,3等(即單元格引用O2 = 1,P2 = 2,Q2 = 3等)Excel - 如果單元格值與列標題匹配,將數據複製到列

單元格C1中有一個數值。

如果C1 =匹配任何列標題(O-Z),則將列B中的數據複製到相應的列。

示例:如果C1 = 4和細胞R 2是4,從列B中的數據將在填充柱R.

如何與VBA實現這一目標?提前致謝。

+0

您已經嘗試了哪些內容? – DaveP

+0

我曾使用公式開始,但後來意識到它不會工作,VBA會允許我這樣做。 – topstuff

回答

0

嘗試這樣的事情......

Sub CopyDataDynamically() 
Dim lr As Long, num As Long 
Dim rng As Range 
lr = Cells(Rows.Count, 1).End(xlUp).Row 
Set rng = Range("O2") 
num = Range("C1").Value 
If num > 0 And num <= 12 Then 
    Range("B2:B" & lr).Copy 
    rng.Offset(0, num - 1).PasteSpecial xlPasteValues 
End If 
End Sub 

如果你想用一個公式的幫助下實現這一點,試試這個...

在O2

=IF($B2="","",IF(O$1=$C$1,$B2,"")) 

和然後在B列中存在數據的情況下進行復制。

+0

謝謝你。這工作得很好,我遇到的唯一的問題是.. 列B的底行沒有通過它的目的地 如果我可以,我希望列標題保持以前(所以不是數據副本在這些標題上(單元格O2-Z2) - 再次感謝 – topstuff

+0

@topstuff歡迎您!很高興它的工作。請花一分鐘接受答案標記您的問題爲解決。:) – sktneer

+0

對不起,我忘了提及。 B欄中的數據來自公式。我怎麼能夠只複製價值,而不是公式? – topstuff

相關問題