標題:
[發問]
跨欄置中與擷取文字問題
[打印本頁]
作者:
v03586
時間:
2016-1-9 21:55
標題:
跨欄置中與擷取文字問題
想請問各位高手們
我想要顯示圖片中的效果
資料一開始都是混亂的(上千筆)
1. 先依照A欄先排序, 知後再依照相同東西(如AAA)再一次依照D欄再排序一次
2. 依照C欄,D欄,E欄 做簡化
2-1. C欄共通點從第一個字元開始到第一個『
-
』 都保留
2-2. D欄共通點從05-xxxx- 第二個『
-
』 都保留
2-3. E欄共通點第一個字元到其中會有個字串『
SPC
』 或 『
SCL
』,後面都不要
2-4. 可以再幫我真對E欄 再做另一個版本嗎 , 另一個版本是從字串中 ,從『QVS』後到『
SPC
』 或 『
SCL
』
3. 完成1、2步驟後,依照B欄相同的跨欄置中, 如圖片中
4.依照D欄相同的字串用黑框線
5.B欄位資料字體大小16 , C與D欄字體大小12 , 資料表縮放比例63%檢視
[attach]23072[/attach]
作者:
stillfish00
時間:
2016-1-11 17:04
回復
1#
v03586
圖片密密麻麻怎不附檔,要試的人自己依圖去填嗎?
作者:
hcm19522
時間:
2016-1-11 20:08
http://blog.xuite.net/hcm19522/twblog/372926021
http://blog.xuite.net/hcm19522/twblog/372906150
參考
作者:
v03586
時間:
2016-1-11 20:20
Sorry , 補檔案
[attach]23087[/attach]
作者:
v03586
時間:
2016-1-11 20:24
回復
3#
hcm19522
大大果然是函數達人!!!! 因處理資料上千筆, 所以必須寫入迴圈
我覺得大大這個方法也很好!!!值得參考
作者:
stillfish00
時間:
2016-1-12 15:04
回復
4#
v03586
Try this
4.依照D欄相同的字串用黑框線 => 改為依合併的A欄畫粗框
Sub Test()
Dim oRegexp As Object: Set oRegexp = CreateObject("vbscript.regexp")
Dim ar, i, j, s
ar = Sheets("報表").Range("A9:F21").Value 'or .Range("A9").CurrentRegion.Value
With oRegexp
.Pattern = "^[^-]*-"
For i = 1 To UBound(ar)
If .Test(ar(i, 3)) Then ar(i, 3) = .Replace(ar(i, 3), "")
Next
.Pattern = "^[^-]*-[^-]*-"
For i = 1 To UBound(ar)
If .Test(ar(i, 4)) Then ar(i, 4) = .Replace(ar(i, 4), "")
Next
.Pattern = "^(.{2})(.)(.*)[a-zA-Z]$"
For i = 1 To UBound(ar)
If .Test(ar(i, 5)) Then
s = .Replace(ar(i, 5), "$1-$2-$3")
mch = Application.VLookup(s, Sheets("Flow").[A:B], 2, False)
If Not IsError(mch) Then ar(i, 5) = mch
End If
Next
.Pattern = "(SPC|SCL).*$"
'另一種 QVS to SPC/SCL
'.Pattern = "^.*?(QVS.*?(SPC|SCL)).*$"
For i = 1 To UBound(ar)
If .Test(ar(i, 6)) Then ar(i, 6) = .Replace(ar(i, 6), "$1")
Next
End With
Application.ScreenUpdating = False
With Sheets.Add.[A1].Resize(UBound(ar), UBound(ar, 2))
.Value = ar
.Sort key1:=.Cells(1, 1), order1:=xlAscending, key2:=.Cells(1, 4), order2:=xlAscending
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
Application.DisplayAlerts = False
i = 1
For j = 1 To UBound(ar)
If .Cells(j, 2).Value <> .Cells(j + 1, 2).Value Then
If i <> j Then Range(.Cells(i, 1), .Cells(j, 1)).Merge
With .Cells(i, 1).MergeArea.Resize(, .Columns.Count)
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeRight).Weight = xlMedium
End With
i = j + 1
End If
Next
Application.DisplayAlerts = True
[B:B].Font.Size = 16
[C:D].Font.Size = 12
ActiveWindow.Zoom = 63
[A:F].EntireColumn.AutoFit
[A:B].HorizontalAlignment = xlCenter
End With
Application.ScreenUpdating = True
End Sub
複製代碼
作者:
v03586
時間:
2016-1-12 23:40
回復
6#
stillfish00
感謝大大的幫忙!!!
但我部分看不太清楚 , 可否麻煩大大針對幾項功能協助做個說明
EX :
With oRegexp
.Pattern = "^[^-]*-"
For i = 1 To UBound(ar)
If .Test(ar(i, 3)) Then ar(i, 3) = .Replace(ar(i, 3), "")
Next
.Pattern = "^[^-]*-[^-]*-"
複製代碼
這一段是判斷什麼功能?
For i = 1 To UBound(ar)
If .Test(ar(i, 4)) Then ar(i, 4) = .Replace(ar(i, 4), "")
Next
.Pattern = "^(.{2})(.)(.*)[a-zA-Z]$"
複製代碼
這一段是判斷什麼功能
我不知道這樣切 有沒有切錯段落
作者:
stillfish00
時間:
2016-1-13 09:57
回復
7#
v03586
oRegexp : regular expression 正則表達式/正規表示法,用來查找、替換、提取、驗證字串,
,可參考 http://club.excelhome.net/thread-1128647-1-2.html 學習
.Pattern = "^[^-]*-" 用來設定規則
^ : 字串開頭位置
[^-] : 非-的任意字元
[^-]* : 0~n個非-的任意字元
- : -字元
所以是匹配開頭到第一個-字元
.Test 是用來測試是否符合規則
.Replace 是把符合規則部分的字串取代掉
複製代碼
作者:
准提部林
時間:
2016-1-13 13:52
用最基本的程式語法, 自行去研究, 不再多說明~~
Sub TEST()
Dim R&, xArea As Range, xR As Range, xH As Range, T, TT, X
R = [報表!A65536].End(xlUp).Row: If R < 9 Then Exit Sub
Set xArea = Sheets("報表").Range("A9:A" & R)
For Each xR In xArea
T = xR(1, 3): xR(1, 3) = Mid(T, InStr(T, "-") + 1)
xR(1, 4) = Right(xR(1, 4), 9)
T = xR(1, 5): T = Left(T, 2) & "-" & Mid(T, 3, 1) & "-" & Mid(T, 4, 4)
TT = Application.VLookup(T, [Flow!A:B], 2, 0)
If Not IsError(TT) Then xR(1, 5) = TT Else xR(1, 5).Font.Color = vbRed
T = xR(1, 6)
T = Mid(T & ",QVS", InStr(T, "QVS") + 4) '取 QVS 以後字串
For Each TT In Array("SPC", "SCL")
X = InStr(T, TT): If X > 0 Then xR(1, 6) = Left(T, X + 2): Exit For
Next
Next
xArea.Resize(, 6).Sort Key1:=xArea(1, 1), Order1:=xlAscending, _
Key2:=xArea(1, 4), Order2:=xlAscending, Header:=xlNo
Application.DisplayAlerts = False
For Each xR In xArea
If xR & xR(1, 2) <> xR(0) & xR(0, 2) Then Set xH = xR
If xR & xR(1, 2) <> xR(2) & xR(2, 2) Then
Range(xH, xR).Merge: Range(xH(1, 2), xR(1, 2)).Merge
Range(xH, xR(1, 6)).Borders.LineStyle = 1
For i = 7 To 10
Range(xH, xR(1, 6)).Borders(i).Weight = xlMedium
Next i
End If
Next
End Sub
複製代碼
作者:
v03586
時間:
2016-1-14 02:29
回復
9#
准提部林
Excel 打開比對A2欄位有 ON HAND--PC_ONHAND2HR_1ST_FLOW
就等同匯入報表嗎
作者:
v03586
時間:
2016-1-14 02:51
回復
9#
准提部林
回復
9#
准提部林
Q1.感謝大大!! 我針對程式碼修改至我自己的
程式報表
(FMC), 發現欄位Substrate 與 B/D Np 欄位 就是取 『-』 好像切得不是很乾淨 (W與X欄位)
還有最後一欄一長串那個, 我修改不出來...求指教....
Q2.還有可以將匯入報表模式改成 Excel 打開後比對 (
參考報表資料來源
:ONHAND2HR_Ist_Flow)
A2欄位有 ON HAND--PC_ONHAND2HR_1ST_FLOW 就等同匯入報表嗎?
意思就是只要打開程式EXCEL 與 參考資料來源 比對資料表Sheet1 A2欄有
ON HAND--PC_ONHAND2HR_1ST_FLOW
字眼
請問大大能否新增幾樣功能嗎
1. 功能1
1-1. 如果執行時間比對
參考資料來源
Date Time (L欄)超過24H 能幫我反黃色標示嗎?
2. 功能2
2-1.
程式
中報表上CUSTNAME 欄位中如果有 CSP / L1 / L2 / 字串則整個刪除
2-2. 保留 ENG / HQCSP / HQ-CSP / HQ-L1 / HQ-L2 / HQL1 / HQL2
2-3. 然後移去ENG 移至ENG資料表, HQ CSP系列移至CSP資料表, HQ L1 / HQ L2 系列移至Other資料表
3. 功能3
3-1.
報表參考資料中的
Q欄位QTY ,能比對 P欄位 STEP 帶入
程式
中的相對欄位嗎? (如執行結果EXCEL)
4. 功能4
4-1. 程式中,資料表FMC,前面有看見A欄位與B欄位 已有合併儲存格, 發現後面有很多相同重複的 也可以合併嗎?
4-1-1. S欄位(Custname) T欄位(Device) U欄位(Datetime) V欄位(MO QTY) W欄位Substrate X欄位(B/D No) Y欄位(Flow)
檔案內說明
[2F新報表程式_v1] 上述為程式 [ONHAND2HR_Ist_Flow] 上述為參考資料來源
[attach]23106[/attach]
作者:
v03586
時間:
2016-1-14 07:47
回復
11#
v03586
補充....
STEP 裡面 只要有WGD1 / WGH1 / WGP1 / WGS1 / WG01
都列入WG欄位裡面..!!! WGxx都屬於WG製程欄位
作者:
v03586
時間:
2016-1-14 08:42
回復
12#
v03586
Sorry....程式檔案中TBG1旁邊(右)製程欄位多加一個製程欄位PGH1
忘記加上去.....thanks
作者:
v03586
時間:
2016-1-14 10:29
回復
11#
v03586
避免大大們混亂我一直新增回覆的問題
此篇整合剛剛單獨回覆的問題 , 及自行新增PGH1
新增Q3問題
Q1.我針對程式碼修改至我自己的程式報表(FMC), 發現欄位Substrate 與 B/D No 欄位 就是取 『-』 好像切得不是很乾淨 (X與Y欄位)
還有最後一欄一長串那個, 我修改不出來...求指教....
Q2.還有可以將匯入報表模式改成 Excel 打開後比對 (參考報表資料來源:ONHAND2HR_Ist_Flow)
A2欄位有 ON HAND--PC_ONHAND2HR_1ST_FLOW 就等同匯入報表嗎?
意思就是只要打開程式EXCEL 與 參考資料來源 比對資料表Sheet1 A2欄有ON HAND--PC_ONHAND2HR_1ST_FLOW 字眼
Q3.欄位線的劃置能全部細線條 , 依照B/D No 不同畫粗線條嗎? (執行結果excel那樣)
目前好像不同的MO 畫粗線
請問大大能否新增幾樣功能嗎
1. 功能1
1-1. 如果執行時間比對參考資料來源Date Time (C欄)超過24H 能幫我反黃色標示嗎?
2. 功能2
2-1. 程式中報表上CUSTNAME 欄位(V欄位)中如果有 CSP / L1 / L2 / 字串則整個刪除
2-2. 保留 ENG / HQCSP / HQ-CSP / HQ-L1 / HQ-L2 / HQL1 / HQL2
2-3. 然後移去ENG 移至ENG資料表, HQ CSP系列移至CSP資料表, HQ L1 / HQ L2 系列移至Other資料表
3. 功能3
3-1. 報表參考資料中的Q欄位QTY ,能比對 P欄位 STEP 帶入,
程式中H欄~U欄位相對製程欄位嗎? (如執行結果EXCEL)
4. 功能4
4-1. 程式中,資料表FMC,前面有看見A欄位(PKG)與B欄位(MO) 已有合併儲存格, 發現後面有很多相同重複的 也可以合併嗎?
4-1-1. V欄位(Custname) W欄位(Device) C欄位(Datetime) G欄位(MO QTY) X欄位Substrate Y欄位(B/D No) Z欄位(Flow)
檔案內說明
[2F新報表程式_v1] 上述為程式 [ONHAND2HR_Ist_Flow] 上述為參考資料來源
[attach]23109[/attach]
作者:
v03586
時間:
2016-1-18 01:18
請問是否有人會解題呢...!! 卡關了
作者:
v03586
時間:
2016-1-22 01:54
回復
14#
v03586
已經將功能4問題解決...剩下求助
Q1.我針對程式碼修改至我自己的程式報表(FMC), 發現欄位Substrate 與 B/D No 欄位 就是取 『-』 好像切得不是很乾淨 (X與Y欄位)
還有Z欄位, 無法從『
QVS
』後到『
SPC
』 或 『
SCL
』保留, 其他去除
Q2.還有可以將匯入報表模式改成 Excel 打開後比對 (參考報表資料來源:ONHAND2HR_Ist_Flow)
A2欄位有 ON HAND--PC_ONHAND2HR_1ST_FLOW 就等同匯入報表嗎?
意思就是只要打開程式EXCEL 與 參考資料來源 比對資料表Sheet1 A2欄有ON HAND--PC_ONHAND2HR_1ST_FLOW 字眼
Q3.欄位線的劃置能全部細線條 , 依照B/D No 不同畫粗線條嗎? (執行結果excel那樣)
目前好像不同的MO 畫粗線
請問大大能否新增幾樣功能嗎
1. 功能1
1-1. 如果執行時間比對參考資料來源Date Time (C欄)超過24H 能幫我反黃色標示嗎?
1-2
. (目前有設定格式化條件 儲存格值< 小於 =NOW()-3 ) 反黃都都沒有作用
2. 功能2
2-1. 程式中報表上CUSTNAME 欄位(V欄位)中如果有 CSP / L1 / L2 / 字串則整個刪除
2-2. 保留 ENG / HQCSP / HQ-CSP / HQ-L1 / HQ-L2 / HQL1 / HQL2
2-3. 然後移去ENG 移至ENG資料表, HQ CSP系列移至CSP資料表, HQ L1 / HQ L2 系列移至Other資料表
3. 功能3
3-1. 報表中的AA欄位QTY ,能比對 P欄位 STEP 帶入,H欄~U欄位相對製程欄位嗎?
EX: ( F9欄位=DB) AA數字70 , 則帶入對應欄為 U欄(DB) U9顯示AA欄數字70
[attach]23160[/attach]
[attach]23159[/attach]
作者:
v03586
時間:
2016-1-23 02:03
本帖最後由 v03586 於 2016-1-23 02:05 編輯
功能3我能想到的呈現方式就是
如果F欄未 [STEP] = TBG1 則就從AA欄位剪下貼上, 請問如何寫成多判斷
For h = 9 To 3500
If .Cells(h, "F") = "TBG1" Then
.Cells(h, "AA").Select
Selection.Cut
.Cells(h, "H").Select
ActiveSheet.Paste
End If
next
複製代碼
我在下面在新增一個if 就跑不出來了
還有什麼辦法呢?或者如何修改?
For h = 9 To 3500
If .Cells(h, "F") = "TBG1" Then
.Cells(h, "AA").Select
Selection.Cut
.Cells(h, "H").Select
ActiveSheet.Paste
End If
If .Cells(h, "F") = "PGH1" Then
.Cells(h, "AA").Select
Selection.Cut
.Cells(h, "I").Select
ActiveSheet.Paste
End If
Next
複製代碼
作者:
v03586
時間:
2016-1-24 00:25
以上的問題單點突破後只剩下兩個問題...
希望有高手能替我解答一下
Q1.欄位線的劃置能全部細線條 , 依照
B/D No
不同畫粗線條嗎?
目前好像不同的MO 畫粗線
如圖片 原本是這樣
[attach]23164[/attach]
想讓劃線變成這樣
[attach]23165[/attach]
1. 新增功能
1-1. 程式中報表上CUSTNAME 欄位(V欄位)中如果
只有 CSP / L1 / L2 /
字串則整個刪除
1-2. 保留 ENG / HQCSP / HQ-CSP/ HQ-L1 / HQ-L2 / HQL1 / HQL2
1-3. 然後移去ENG 移至ENG資料表, HQ CSP系列移至CSP資料表, HQ L1 / HQ L2 系列移至Other資料表
[attach]23166[/attach]
Dim UType%
Sub 新報表_匯入()
Dim xFile$, x As New Application, xB As Workbook, xS As Worksheet
Dim RepSht As Worksheet, xR As Range, xLab As Range, xAddress$
Set RepSht = Sheets("FMC")
Application.ScreenUpdating = False
RepSht.UsedRange.EntireRow.Delete
Dim currentPKG, currentDevice, whichFirst As String
Dim index As Integer
Dim hasReport As Boolean
title_row = 8
hasReport = False
For i = 1 To Workbooks.Count
With Workbooks(i).Sheets(1)
If .Range("A" & title_row).Value Like "LOTID*" And .Range("D" & title_row).Value Like "TYPE*" And .Range("M" & title_row) Like "QTY*" Then
Set xS = Workbooks(i).Sheets(1)
hasReport = True
i = Workbooks.Count + 1
End If
End With
Next i
If hasReport = False Then MsgBox "找不到報表檔! ": Exit Sub
R = xS.Cells(Rows.Count, 1).End(xlUp).Row + 5
With RepSht
.Range("A1:A" & R) = xS.Range("AJ1:AJ" & R).Value 'pkg
.Range("B1:B" & R) = xS.Range("B1:B" & R).Value 'MO
.Range("C1:C" & R).NumberFormatLocal = "@" 'Date time
.Range("C1:C" & R) = xS.Range("L1:L" & R).Value 'Date time
.Range("D1:D" & R) = xS.Range("A1:A" & R).Value 'LOTID
.Range("E1:E" & R) = xS.Range("D1:D" & R).Value 'DIE TYPE
.Range("F1:F" & R) = xS.Range("P1:P" & R).Value 'STEP
.Range("G1:G" & R) = xS.Range("M1:M" & R).Value ' MO QTY
.Range("AA1:AA" & R) = xS.Range("Q1:Q" & R).Value ' QTY
.Range("H8").Value = "TBG1"
.Range("I8").Value = "PGH1"
.Range("J8").Value = "SLS1"
.Range("K8").Value = "WG"
.Range("L8").Value = "DE01"
.Range("M8").Value = "WM01"
.Range("N8").Value = "FL01"
.Range("O8").Value = "LWS1"
.Range("P8").Value = "WS01"
.Range("Q8").Value = "UTI1"
.Range("R8").Value = "VS01"
.Range("S8").Value = "QVS1"
.Range("T8").Value = "RQVS1"
.Range("U8").Value = "DB"
.Range("V1:W" & R) = xS.Range("E1:F" & R).Value 'CUST DEVICE
.Range("X1:X" & R) = xS.Range("AD1:AD" & R).Value 'Substrate
.Range("Y1:Y" & R) = xS.Range("AE1:AE" & R).Value 'B/D No
.Range("Z1:Z" & R) = xS.Range("AQ1:AQ" & R).Value 'flow
.Range("A8").Value = "PKG"
.Range("A7").Value = ""
.Range("X8").Value = "Substrate"
.Range("X7").Value = ""
.Range("Y8").Value = "B/D No."
.Range("Y7").Value = ""
.Range("D2").Value = ""
.Range("AA8").Value = ""
.Range("A1").Value = "1ST Flow On Hand Report"
.Range("A2").Value = Now()
End With
Dim RRR&, xAArea As Range, xRRR As Range, xHH As Range, Q, TTTT, XXX
RRR = [FMC!A65536].End(xlUp).Row: If RRR < 9 Then Exit Sub
Set xAArea = Sheets("FMC").Range("A9:A" & RRR)
For Each xRRR In xAArea
Q = xRRR(1, 26)
Q = Mid(Q & ",QVS", InStr(Q, "QVS") + 4) '取 QVS 以後字串
For Each TTTT In Array("SPC", "SCL")
XXX = InStr(Q, TTTT): If XXX > 0 Then xRRR(1, 26) = Left(Q, XXX + 2): Exit For
Next
Next
With RepSht
' For g = 3500 To 8 Step -1
' If .Cells(g, "V") Like "*CSP*" Or .Cells(g, "V") Like "*L1*" Or .Cells(g, "V") Like "*L2*" _
' Or .Cells(g, "V") Like "*ENG*" Or .Cells(g, "A") Like "LQFP*" Or .Cells(g, "A") Like "PLCC*" _
' Or .Cells(g, "A") Like "SOP*" Or .Cells(g, "A") Like "SSOP*" Or .Cells(g, "A") Like "TSOP*" _
' Or .Cells(g, "A") Like "TSSOP*" Or .Cells(g, "A") Like "TFBGA*" Then
' .Rows(g).Delete
' End If
' Next
RepSht.Select
For h = 9 To 3500
.Cells(h, "AA").Select
Selection.Cut
Select Case .Cells(h, "F").Value
Case "TBG1"
.Cells(h, "H").Select
ActiveSheet.Paste
Case "PGH1"
.Cells(h, "I").Select
ActiveSheet.Paste
Case "SLS1"
.Cells(h, "J").Select
ActiveSheet.Paste
Case "DE01"
.Cells(h, "L").Select
ActiveSheet.Paste
Case "WM01"
.Cells(h, "L").Select
ActiveSheet.Paste
Case "FL01"
.Cells(h, "N").Select
ActiveSheet.Paste
Case "LWS1"
.Cells(h, "O").Select
ActiveSheet.Paste
Case "WS01"
.Cells(h, "P").Select
ActiveSheet.Paste
Case "UTI1"
.Cells(h, "Q").Select
ActiveSheet.Paste
Case "VS01"
.Cells(h, "R").Select
ActiveSheet.Paste
Case "QVS1"
.Cells(h, "S").Select
ActiveSheet.Paste
Case "RQVS1"
.Cells(h, "T").Select
ActiveSheet.Paste
Case "DB"
.Cells(h, "U").Select
ActiveSheet.Paste
End Select
Next
For e = 9 To 3500
If .Cells(e, "F") Like "WG*" Then
.Cells(e, "AA").Select
Selection.Cut
.Cells(e, "K").Select
ActiveSheet.Paste
End If
Next
End With
'xB.Close 0
Dim RR&, xArea As Range, xRR As Range, xH As Range, T, TT, XX
RR = [FMC!A65536].End(xlUp).Row: If RR < 9 Then Exit Sub
Set xArea = Sheets("FMC").Range("A9:A" & R)
For Each xRR In xArea
T = xRR(1, 25): xRR(1, 25) = Mid(T, InStr(T, "-") + 1)
xRR(1, 24) = Right(xRR(1, 24), 9)
T = xRR(1, 5): T = Left(T, 2) & "-" & Mid(T, 24, 1) & "-" & Mid(T, 23, 4)
Next
xArea.Resize(, 26).Sort Key1:=xArea(1, 1), Order1:=xlAscending, _
Key2:=xArea(1, 25), Order2:=xlAscending, Header:=xlNo
Application.DisplayAlerts = False
For Each xRR In xArea
If xRR & xRR(1, 2) <> xRR(0) & xRR(0, 2) Then Set xH = xRR
If xRR & xRR(1, 2) <> xRR(2) & xRR(2, 2) Then
Range(xH, xRR).Merge: Range(xH(1, 2), xRR(1, 2)).Merge
Range(xH, xRR).Merge: Range(xH(1, 3), xRR(1, 3)).Merge
Range(xH, xRR).Merge: Range(xH(1, 7), xRR(1, 7)).Merge
Range(xH, xRR).Merge: Range(xH(1, 22), xRR(1, 22)).Merge
Range(xH, xRR).Merge: Range(xH(1, 23), xRR(1, 23)).Merge
Range(xH, xRR).Merge: Range(xH(1, 24), xRR(1, 24)).Merge
Range(xH, xRR).Merge: Range(xH(1, 25), xRR(1, 25)).Merge
Range(xH, xRR).Merge: Range(xH(1, 26), xRR(1, 26)).Merge
Range(xH, xRR(1, 26)).Borders.LineStyle = 1
For i = 7 To 10
Range(xH, xRR(1, 26)).Borders(i).Weight = xlMedium
Next i
End If
Next
With RepSht
Sheets("FMC").Select
Cells.Select
Selection.Font.Size = 14
With Selection.Font
.Name = "Arial"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("A8:Z8").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End With
Range("A8").Select
ActiveWindow.Zoom = 63
Call 調整
End Sub
Sub 報表_清除()
Sheets("FMC").UsedRange.EntireRow.Delete
End Sub
Sub 調整()
Dim RepSht As Worksheet
Set RepSht = Sheets("FMC")
With RepSht
Columns("A:A").Select
Selection.ColumnWidth = 30
Columns("B:B").Select
Selection.ColumnWidth = 11.63
Columns("C:C").Select
Selection.ColumnWidth = 16
Columns("D:D").Select
Selection.ColumnWidth = 20.88
Columns("E:E").Select
Selection.ColumnWidth = 8.25
Columns("F:F").Select
Selection.ColumnWidth = 9.25
Columns("G:G").Select
Selection.ColumnWidth = 10
Selection.NumberFormatLocal = "#,##0_ "
Columns("H:U").Select
Selection.ColumnWidth = 8.63
Columns("V:V").Select
Selection.ColumnWidth = 40.38
ActiveWindow.SmallScroll ToRight:=11
Columns("W:W").Select
Selection.ColumnWidth = 59.75
Columns("X:X").Select
Selection.ColumnWidth = 15.5
Columns("Y:Y").Select
Selection.ColumnWidth = 10.5
ActiveWindow.SmallScroll ToRight:=4
Columns("Z:Z").Select
Selection.ColumnWidth = 93.38
Range("A7").Select
End With
End Sub
複製代碼
作者:
准提部林
時間:
2016-1-24 20:51
這檔案頗費時,只能做主要程式,其它細節及不足處,自行去套改∼∼
[attach]23169[/attach]
作者:
v03586
時間:
2016-1-26 21:59
回復
19#
准提部林
感謝大大的協助!!! 剩下得我自行研究
至於劃線部分能像這樣嗎? 依照B/D No
如圖目前是這樣劃線
[attach]23184[/attach]
依照B/D No 劃線方式
[attach]23185[/attach]
作者:
准提部林
時間:
2016-1-27 12:39
回復
20#
v03586
v2版:
[attach]23187[/attach]
作者:
v03586
時間:
2017-7-18 12:00
回復
6#
stillfish00
請教一下大大的方式, 是設定格式後再暫存, 後續再開新的Excel 頁面貼上結果
想請教如何在跑迴圈的同時就即時層現結果呢? 不需要再開新Excel 頁面貼上的方式
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)