- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# simplehope
試試看
Moisture test result(2) 模組上的程式碼
Range("d7") 有變動時會自動執行- Option Explicit
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim A, I As Integer, ii As Integer, Ar As Variant, E As Range, LotNo As Integer
- Dim Rng As Range
- If Target.Address <> Range("d7").Address Then Exit Sub
- Application.EnableEvents = False
- Application.ScreenUpdating = False
- A = Split(Range("d7").Validation.Formula1, ",")
- LotNo = 20 'LotNo有變動時修改這理 '
- For I = 0 To UBound(A)
- If Val(A(I)) = [D7].Value Then
- For ii = 0 To I
- If ii = 0 Then
- Set Rng = [L16]
- Else
- Set Rng = Union(Rng, [L16].Offset((LotNo * 2 + 1) * ii - 1)) '41
- End If
- Next
- Range(Rng, Cells(Rows.Count, "L").End(xlUp)) = ""
- Exit For
- End If
- Next
- If Not Rng Is Nothing Then
- '******** W 檔案已開啟 ***
- Ar = Workbooks("檔案名稱.xls").Sheets(1).[AU16].Resize(LotNo).Value
- '******** W 檔案未開啟 ****
- 'With Workbooks.Open("檔案的路路徑&檔案名稱.xls")
- ' Ar = .Sheets(1).[AU16].Resize(LotNo).Value
- ' .Close False
- 'End With
- '*************************************
- Ar = Application.Transpose(Ar)
- For Each E In Rng.Cells
- For I = 1 To 20
- E.Cells(I * 2 - 1) = Ar(I)
- Next
- Next
- End If
- Application.ScreenUpdating = True
- Application.EnableEvents = True
- End Sub
複製代碼 |
|