在Excel文件中,我有两个标签:输入和输出。
在选项卡输入中,我在A列中有一个代码列表,如:code001,它会无限期地进行,因为我添加的内容越来越多。
在B栏中,我有一个关键词列表,如:蓝色连衣裙,红色铅笔,白色围巾......再次我没有关键字的数量,因为我添加的越来越多。
在C列和D列上,我的结构与A和B相同。 (文件结构无法更改!)
我想在列A上输出选项,在列A上输入代码(从选项卡输入中的列A和列C),在列B上放置关键字(选项卡输入中的列B和列D)。
如何使用while循环/函数遍历所有列和行?
答案 0 :(得分:3)
我认为你应该用工作表公式来做这件事。 在工作表输出的A列中,输入以下公式:
=Input!A:A&Input!C:C
表示此公式:
=Input!B:B&Input!D:D
如果问题是您对Excel VBA一无所知,那么以下网站应该可以帮助您:
以下是一些其他网站供您阅读:
祝你好运
菲利普
答案 1 :(得分:1)
我知道这是一个迟到的答案,但试试这个。它可能比需要的更复杂,但有很多方法可以做到这一点。
Public Sub stuff2()
Dim rangeA, rangeB, ranceC, rangeD As Range
Dim numA, numB, numC, numD As Integer
With Sheets("Input")
numA = Worksheetfunction.CountA(.Range("A:A"))
numB = Worksheetfunction.CountA(.Range("B:B"))
numC = Worksheetfunction.CountA(.Range("C:C"))
numD = Worksheetfunction.CountA(.Range("D:D"))
Set rangeA = .Range("A1:A" & numA)
Set rangeB = .Range("B1:B" & numB)
Set rangeC = .Range("C1:C" & numC)
Set rangeD = .Range("D1:D" & numD)
End With
With Sheets("Output")
rangeA.Copy .Range("A1")
rangeB.Copy .Range("B1")
rangeC.Copy .Range("A" & numA + 1)
rangeD.Copy .Range("AB" & numB + 1)
End With
End Sub
答案 2 :(得分:0)
不可否认,我提供解决方案已经晚了5年......这是我解决问题的方法
Sub consol
Dim maxi as long, restrtrow as long, i as long
For i = 1 to 4
If i = 1 or i = 3 then
Maxi= sheets ("input").cells (1000000,i).end (xlup).row
Restrtrow = sheets ("output").cells (1000000,1).end (xlup).row+1
Sheets ("input").select
Range (Cells (2 ,i),cells ( maxi,i)).copy
Sheets ("output").select
Cells(Restrtrow,1).SELECT
Selection.pastespecial paste:= xlpastevalues
Elseif i =2 or i=4 then
Sheets ("input").select
Range (cells (2,i),cells (maxi,i)).select
Selection.copy
Sheets ("output").select
Cells (2,restrtrow).select
Selection.pastespecial paste:= xlpastevalues
End if
next
end sub