① 用VBA編寫合並多個工作表的數據到一張表中
Public Sub AutoCopy()
Dim MyPath As String
Dim MyName As String
Dim AllName() As String
Dim MyWB As Workbook
i = 0
Application.ScreenUpdating = False
MyPath = "C:\Users\Public\Documents\microsoft\test"
ActiveSheet.Range("A1") = "工號"
ActiveSheet.Range("B1") = "姓名"
ActiveSheet.Range("C1") = "工序"
If Right(MyPath, 1) <> "\" Then
MyPath = MyPath & "\"
End If
MyName = Dir(MyPath & "*.xlsx", 0)
Do While MyName <> ""
ReDim Preserve AllName(i)
AllName(i) = MyName
i = i + 1
MyName = Dir
Loop
For j = 0 To i - 1
If AllName(j) <> "" Then
'ActiveSheet.Cells(j + 1, 6) = AllName(j) & " " & j
Set MyWB = GetObject(MyPath & AllName(j))
ThisWorkbook.Sheets(1).Range("A" & ActiveSheet.Range("A65535").End(xlUp).Row + 1 & ":C" & _
ActiveSheet.Range("A65535").End(xlUp).Row + MyWB.Sheets(1).Range("D65535").End(xlUp).Row - 1).Value _
= MyWB.Sheets(1).Range("B2:D" & MyWB.Sheets(1).Range("D65535").End(xlUp).Row).Value
Workbooks(AllName(j)).Close
End If
Next j
Application.ScreenUpdating = True
End Sub
試試這個看 要把MyPath = "C:\Users\Public\Documents\microsoft\test"改成你自己的文件夾路徑
② vba 幾個單元格的數據拼湊成一個
Sub組合()
DimJGArr(),TopRow,EndRowAsVariant
DimRngAsRange,N,EndColAsLong
TopRow=Application.InputBox("輸入首行號:","首行號輸入",2,Type:=1)
EndRow=Application.InputBox("輸入尾行號:","尾行號輸入",2,Type:=1)
IfTopRow="False"OrEndRow="False"ThenExitSub
EndCol=Range("iv1").End(xlToLeft).Column
Fori=TopRowToEndRow
N=N+1
ReDimPreserveJGArr(1ToN)
Forj=1ToEndCol
IfCells(i,j)<>""Then
Ifj=2Then
temp=Left(Cells(i,j),Len(Cells(i,j))-1)
Else
temp=Cells(IIf(j>2,1,i),j)
EndIf
JGArr(N)=JGArr(N)&temp
EndIf
Next
Next
Sheet2.Range("A1")="組合第"&TopRow&"行-第"&EndRow&"行"
Sheet2.Range("A2").Resize(N,1)=WorksheetFunction.Transpose(JGArr)
EndSub
③ vba如何把兩個代碼合並成一個呢
如果是兩個過程都要執行的話,都調用就行了,或者嵌套到一個裡面然後調用一個
代碼如下:
④ vba 通過數組將 兩列數據合並成一列 並顯示出來
用我下面的代碼可以滿足你的需求:
OptionExplicit
SubYgB()
Dimarr1,arr2
arr1=Range(Cells(1,1),Cells(Rows.Count,1).End(xlUp))
arr2=Range(Cells(1,2),Cells(Rows.Count,2).End(xlUp))
Cells(Rows.Count,4).End(xlUp).Offset(1,0).Resize(UBound(arr1),1)=arr1
Cells(Rows.Count,4).End(xlUp).Offset(1,0).Resize(UBound(arr2),1)=arr2
EndSub
第一步獲得A、B列的內容到數組,原理和你的基本相同,區別是我使用Rows.count代替你的65536,可以確保在能支持100多萬行的新版本下正確運行,另外我使用cells(1,1)代替range("a1")理論上速度好一點點。
第二步把數組存放在D列的下一個可用單元格,我是直接輸出的,沒有使用新的數組。
⑤ EXCEL里VBA問題請教,如何把兩個表格的數據相互融合,用代碼怎麼表示謝謝
用下面處理方法
多行一表法
⑥ Excel 如何用VBA將多列內容合並為一列的內容
1、用VBA讀出沒列數據
2、匯合到一個表格中。
3、讀出的數據可以暫時存到數組中。
4、網路一下會有很多代碼。
⑦ vba 如何合並數據
for x=1 to 10
for y=y to 10 step 2
cells(x,y)=cells(x,y) &cells(x,y+1)
next y
next x
⑧ VBA在excel 表中如何將兩個單元格內容寫入到一個單元格並且用/分隔
代碼類似於
sheet2.Range("C1")=sheet1.Range("A1") & "/" & sheet1.Range("B1")
⑨ 把兩列並在一起,vba代碼該怎麼編寫
sub a()
dim brr()
arr=[a1].currentregion
redim brr(1 to ubound(arr,1))
for i=1 to ubound(arr,1)
brr(i)=arr(i,1) & arr(i,2)
next
[a1].resize(ubound(brr,1)=application.transpose(brr)
end sub
這個沒必要用vba吧,C列公式=a1 & b1, 下拉,然後,復制》選擇性粘貼把A列覆蓋掉就好了啊?
⑩ 如何用VBA將Excel某列任意兩個單元格的內容合並顯示到行單元格
C2公式:
=B2&IFERROR(","&VLOOKUP(A2,A3:C1000,3,0),"")