標題:
[發問]
如何將表單1+表單2 合併
[打印本頁]
作者:
owen9399
時間:
2012-3-16 11:19
標題:
如何將表單1+表單2 合併
本帖最後由 owen9399 於 2012-3-16 15:56 編輯
Dear 各位大大:
如何將表單1+表單2 合併
合併的內容 會依順序排列
[attach]10013[/attach]
作者:
register313
時間:
2012-3-16 13:34
回復
1#
owen9399
Sub xx()
With Sheets("全部合計")
.Columns("A:D") = ""
Sheets("小型公司").Range("A1:D" & Sheets("小型公司").[D65536].End(xlUp).Row).Copy .[A1]
Sheets("大型公司").Range("A2:D" & Sheets("大型公司").[D65536].End(xlUp).Row).Copy .[A65536].End(xlUp).Offset(1, 0)
.[A1].CurrentRegion.Sort Key1:=.[A1], Order1:=xlAscending, Header:=xlGuess
End With
End Sub
複製代碼
作者:
owen9399
時間:
2012-3-16 14:57
回復
2#
register313
非常感謝大大的指導
真的很棒
作者:
owen9399
時間:
2012-3-16 15:26
回復
3#
owen9399
請問大大 這個 我修改卻不能 有誤
我套別的 檔案
[attach]10016[/attach]
作者:
register313
時間:
2012-3-16 16:26
回復
4#
owen9399
Sub 全部公司總年報_按鈕1_Click()
With Sheets("全部公司總年報")
.Columns("A:J") = ""
Sheets("小型股年報").Range("A1:J" & Sheets("小型股年報").[J65536].End(xlUp).Row).Copy
.[A1].PasteSpecial xlPasteValues
Sheets("大型股年報").Range("A2:J" & Sheets("大型股年報").[J65536].End(xlUp).Row).Copy
.[A65536].End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
.[A1].CurrentRegion.Sort Key1:=.[A1], Order1:=xlAscending, Header:=xlGuess
End With
End Sub
複製代碼
作者:
owen9399
時間:
2012-3-16 17:02
回復
5#
register313
問題: 小型股的年報+大型股的年報 並沒有合併,且按照順序
因為 每一頁 共40家公司 ,因此會重復 表頭
公司序號 公司 總張數 總股數 總應付 總已付(公司進貨) 總退回 多領 尚欠 備註
作者:
register313
時間:
2012-3-16 17:49
回復
6#
owen9399
Sub 全部公司總年報_按鈕1_Click()
Application.ScreenUpdating = False
With Sheets("全部公司總年報")
.Columns("A:J") = ""
Sheets("小型股年報").Range("A1:J" & Sheets("小型股年報").[J65536].End(xlUp).Row).Copy
.[A1].PasteSpecial xlPasteValues
Sheets("大型股年報").Range("A2:J" & Sheets("大型股年報").[J65536].End(xlUp).Row).Copy
.[A65536].End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
LR = .UsedRange.Rows.Count
For R = LR To 2 Step -1
If .Cells(R, 1) = .Cells(1, 1) Or .Cells(R, 1) = O Or Application.CountA(.Rows(R)) = 0 Then
.Rows(R).Delete
End If
Next R
.[A1].CurrentRegion.Sort Key1:=.[A1], Order1:=xlAscending, Header:=xlGuess
End With
Application.ScreenUpdating = True
End Sub
複製代碼
作者:
Hsieh
時間:
2012-3-16 21:37
回復
6#
owen9399
Sub All_Paper() '全部年報
Dim Sh As Worksheet, A As Range, C As Range, Ay()
For Each Sh In Sheets(Array("小型股", "大型股"))
With Sh
Set A = .[A:A].Find("公司序號", .[A65536], lookat:=xlWhole)
Do Until Application.CountA(A.Offset(, 1).Resize(, 12)) = 0
r = A.Row
r1 = .Range("A:A").Find("合計", A, lookat:=xlWhole).Row
r2 = .Range("A:A").FindNext(.Cells(r1, 1)).Row
For Each C In A.Offset(, 1).Resize(, 12).SpecialCells(xlCellTypeConstants)
k = C.Column
ReDim Preserve Ay(s)
Ay(s) = Array(.Cells(r, k).Value, .Cells(r + 1, k).Value, .Cells(r1 + 1, k - 1).Value, .Cells(r1, k).Value, .Cells(r1 + 1, k + 1).Value, .Cells(r2, k).Value, .Cells(r2 + 1, k).Value)
s = s + 1
Next
Set A = .Range("A:A").Find("公司序號", .Cells(r2, 1), lookat:=xlWhole)
Loop
End With
Next
If s > 0 Then
With Sheets("全部公司總年報")
.[A2].Resize(s, 7) = Application.Transpose(Application.Transpose(Ay))
.Range("A1").CurrentRegion.Sort key1:=.[A1], Header:=xlYes
End With
End If
End Sub
Sub S_Paper() '小型股年報
Dim A As Range, C As Range, Ay()
With Sheets("小型股")
Set A = .[A:A].Find("公司序號", .[A65536], lookat:=xlWhole)
Do Until Application.CountA(A.Offset(, 1).Resize(, 12)) = 0
r = A.Row
r1 = .Range("A:A").Find("合計", A, lookat:=xlWhole).Row
r2 = .Range("A:A").FindNext(.Cells(r1, 1)).Row
For Each C In A.Offset(, 1).Resize(, 12).SpecialCells(xlCellTypeConstants)
k = C.Column
ReDim Preserve Ay(s)
Ay(s) = Array(.Cells(r, k).Text, .Cells(r + 1, k).Value, .Cells(r1 + 1, k - 1).Value, .Cells(r1, k).Value, .Cells(r1 + 1, k + 1).Value, .Cells(r2, k).Value, .Cells(r2 + 1, k).Value)
s = s + 1
Next
Set A = .Range("A:A").Find("公司序號", .Cells(r2, 1), lookat:=xlWhole)
Loop
End With
If s > 0 Then
With Sheets("小型股年報")
.[A2].Resize(s, 7) = Application.Transpose(Application.Transpose(Ay))
.Range("A1").CurrentRegion.Sort key1:=.[A1], Header:=xlYes
End With
End If
End Sub
Sub U_Paper() '大型股年報
Dim A As Range, C As Range, Ay()
With Sheets("大型股")
Set A = .[A:A].Find("公司序號", .[A65536], lookat:=xlWhole)
Do Until Application.CountA(A.Offset(, 1).Resize(, 12)) = 0
r = A.Row
r1 = .Range("A:A").Find("合計", A, lookat:=xlWhole).Row
r2 = .Range("A:A").FindNext(.Cells(r1, 1)).Row
For Each C In A.Offset(, 1).Resize(, 12).SpecialCells(xlCellTypeConstants)
k = C.Column
ReDim Preserve Ay(s)
Ay(s) = Array(.Cells(r, k).Text, .Cells(r + 1, k).Value, .Cells(r1 + 1, k - 1).Value, .Cells(r1, k).Value, .Cells(r1 + 1, k + 1).Value, .Cells(r2, k).Value, .Cells(r2 + 1, k).Value)
s = s + 1
Next
Set A = .Range("A:A").Find("公司序號", .Cells(r2, 1), lookat:=xlWhole)
Loop
End With
If s > 0 Then
With Sheets("大型股年報")
.[A2].Resize(s, 7) = Application.Transpose(Application.Transpose(Ay))
.Range("A1").CurrentRegion.Sort key1:=.[A1], Header:=xlYes
End With
End If
End Sub
複製代碼
作者:
owen9399
時間:
2012-3-17 13:04
本帖最後由 owen9399 於 2012-3-17 13:26 編輯
回復
8#
Hsieh
謝謝大大
1.我想請教一下 (我分別 在 小型股年報.大型股年報.全部公司總年報中)
新增 已退回 已補貨
可以修改
小型股年報+大型股年報合併 ,全部公司總年報把(A~F)的範圍複製並依順利排列
而 總退回~已補貨 不用處理 (我自己要用計算處理)
而且, 全部公司總年報,每40家公司排成 1大頁
第41家公司 為第2頁起
2.如何 輸入 小型股或大型股資料 自動存入 小型股或大型股的年報中 (因為我是用 儲存格等於方式比較費時)
也是 每一頁 共 40家公司
非常感謝
3.我按好幾下 全部公司總年報 的按鈕時,可以設計 不影響 總退回~已補貨 的公式嗎?
因為 會自動覆蓋
[attach]10036[/attach]
作者:
Hsieh
時間:
2012-3-17 19:03
回復
9#
owen9399
Sub 全部公司總年報_按鈕1_Click()
Dim Sh As Worksheet, A As Range, C As Range, Ay()
For Each Sh In Sheets(Array("小型股", "大型股"))
With Sh
Set A = .[A:A].Find("公司序號", .[A65536], lookat:=xlWhole)
Do Until Application.CountA(A.Offset(, 1).Resize(, 12)) = 0
r = A.Row
r1 = .Range("A:A").Find("合計", A, lookat:=xlWhole).Row
r2 = .Range("A:A").FindNext(.Cells(r1, 1)).Row
For Each C In A.Offset(, 1).Resize(, 12).SpecialCells(xlCellTypeConstants)
k = C.Column
ReDim Preserve Ay(s)
Ay(s) = Array(.Cells(r, k).Value, .Cells(r + 1, k).Value, .Cells(r1 + 1, k - 1).Value, .Cells(r1, k).Value, .Cells(r1 + 1, k + 1).Value, .Cells(r2, k).Value, "=rc6-rc5-rc10+rc11", "=if(rc5-rc6-rc10>0,0,rc6-rc5-rc10)", "=if(rc5-rc6-rc11<0,0,rc5-rc6-rc11)")
s = s + 1
Next
Set A = .Range("A:A").Find("公司序號", .Cells(r2, 1), lookat:=xlWhole)
Loop
End With
Next
If s > 0 Then
With Sheets("全部公司總年報")
.[A2].Resize(s, 9) = Application.Transpose(Application.Transpose(Ay))
.Range("A1").CurrentRegion.Sort key1:=.[A1], Header:=xlYes
r = 42: k = 0
Do Until .Cells(r, 1) = ""
.Cells(r, 1).EntireRow.Insert
.[A1:I1].Copy .Cells(r, 1)
k = k + 1
r = r + 40 + k
Loop
End With
End If
End Sub
複製代碼
作者:
owen9399
時間:
2012-3-19 09:41
回復
10#
Hsieh
謝謝大大的提供 真厲害
作者:
owen9399
時間:
2012-3-19 17:57
回復
10#
Hsieh
DEAR 大大:
我有發現問題 想請教;
1.當 按總年報 產生 第二頁起 "已退回 已補貨 備註"卻沒有顯示出來
2.當 每次 一直按 總年報的按鈕 A2 的直會產生變化 而且 G2~I2的顏色也一直複製,可以設計 清除 A2~L65536的值 的按鈕
(作法 按全部年報的按鈕 很多次數據就改變,而新增 清除鈕 按一次後,再按 全部年報的按鈕 就恢復正常)
謝謝大大
作者:
Hsieh
時間:
2012-3-19 18:55
回復
12#
owen9399
Sub 全部公司總年報_按鈕1_Click()
Dim Sh As Worksheet, A As Range, C As Range, Ay()
For Each Sh In Sheets(Array("小型股", "大型股"))
With Sh
Set A = .[A:A].Find("公司序號", .[A65536], lookat:=xlWhole)
Do Until Application.CountA(A.Offset(, 1).Resize(, 12)) = 0
r = A.Row
r1 = .Range("A:A").Find("合計", A, lookat:=xlWhole).Row
r2 = .Range("A:A").FindNext(.Cells(r1, 1)).Row
For Each C In A.Offset(, 1).Resize(, 12).SpecialCells(xlCellTypeConstants)
k = C.Column
ReDim Preserve Ay(s)
Ay(s) = Array(.Cells(r, k).Value, .Cells(r + 1, k).Value, .Cells(r1 + 1, k - 1).Value, .Cells(r1, k).Value, .Cells(r1 + 1, k + 1).Value, .Cells(r2, k).Value, "=rc6-rc5-rc10+rc11", "=if(rc5-rc6-rc10>0,0,rc6-rc5-rc10)", "=if(rc5-rc6-rc11<0,0,rc5-rc6-rc11)")
s = s + 1
Next
Set A = .Range("A:A").Find("公司序號", .Cells(r2, 1), lookat:=xlWhole)
Loop
End With
Next
If s > 0 Then
With Sheets("全部公司總年報")
.UsedRange.Offset(1).Clear
.[A2].Resize(s, 9) = Application.Transpose(Application.Transpose(Ay))
.Range("A1").CurrentRegion.Sort key1:=.[A1], Header:=xlYes
r = 42: k = 0
Do Until .Cells(r, 1) = ""
.Cells(r, 1).EntireRow.Insert
.[A1:L1].Copy .Cells(r, 1)
k = k + 1
r = r + 40 + k
Loop
End With
End If
End Sub
複製代碼
作者:
owen9399
時間:
2012-3-19 22:51
回復
13#
Hsieh
感恩 大大,有你的指導和耐心的處理我們很小部份的問題, 真的很謝謝你:)
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)