2017-06-05 110 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

相关问题