2017-06-12 139 views
1

我有一列包含50行文本。我想复制每个单元格并将其值粘贴到不同的列中,但是基于单独的输入执行X次。我的思维默认为以python方式思考,并且我想将每个项目追加到列表中进行操作,但我不认为在这种情况下这是必需的。for循环单元格内容到新单元格X次数量vba

Sub fipsloop() 

finalRow = Cells(Rows.Count, "P").End(xlUp).Row 

p = Worksheets("StateSource").Range("B3:").Select 
p_count = WorksheetFunction.CountA(p) 

Dim rng As Range, cell As Range 
rng = Range("e3:finalRow") 

For Each cell In rng 
    If x.Value = "" Then 
     Exit For 
    If p_count > 1 Then 

    '# here is where I am stuck. 

Next cell 

“p_count”是我想要将每个单元格的内容粘贴到不同列的次数。因此,如果列E中有50个项目,并且我的“p_count”变量为2,那么我将粘贴每个项目两次,并在我的新列中包含100个项目。

在python中,我会将每个项目X的次数追加到列表中。有没有办法在VBA中做这样的事情?

+0

像副词'pythonically' –

回答

0

只需在循环中使用.Value属性即可。这将值从列5/E复制到细胞中列16/P非常迅速:

For rowIndex = 1 to p_count 
    Worksheets("StateSource").cells(rowIndex, 16).Value = Worksheets("StateSource").cells(rowIndex, 5).Value 
Next 
+0

你说的意思是“你的价值在这里”?并且你的建议是在for循环中的“if”语句下进行的,还是代替它? –

+0

你的公式在那里,它可以像“= A1 + B1”一样简单。除了检查空白值之外,我不确定你的if语句是做什么的,但这真的取决于你。 – Graham

+0

我的值是在'E',我想复制它们的值(X的次数,又名p_count)到'P' –

相关问题