Excel 2003 VBA 程式問題(New sheet copy file to another sheet)

內容說明
使用Excel 2003中將Input data用VBA程式將G1欄位(Lot No.資料) & G2欄位(Machine No.資料) & E4:I4 (OD Max.內資料) & E5:I5 (OD Min.內資料)複製到另一個sheet
需求如下:
1.當按下加入資料按鈕自動依序新增資料於Output data
2.若有Lot No.資料 & Machine No.資料任何一欄位無資料, 秀出需輸入資料訊息
3.若是E5:I5 (OD Min.內資料) 3~5 無資料可直接複製至新sheet

Output data 参閲圖一
Input data 参閲圖二

Excel 2003 VBA 程式問題(New sheet copy file to another sheet)

Excel 2003 VBA 程式問題(New sheet copy file to another sheet)


在Input data工作表輸入下面,試看看

Option Explicit

Private Sub CommandButton1_Click()
DataClear
End Sub

Private Sub CommandButton2_Click()
If WorksheetFunction.CountA(Me.Range("E1:E2"), Me.Range("C4:G4"), Me.Range("C5:D5")) < 9 Then
MsgBox ("需輸入完整資料!")
Else
Dim R As Integer
With Sheets("Output data")
R = WorksheetFunction.CountA(.Range("A:A"))
.Range("A2:B2").Offset(R) = Array(Me.Range("E1").Value, Me.Range("E2").Value)
.Range("C2:G2").Offset(R) = Me.Range("C4:G4").Value
.Range("H2:L2").Offset(R) = Me.Range("C5:G5").Value
End With
MsgBox ("輸入完成!")
DataClear
End If
End Sub

Private Function DataClear()
Me.Range("E1:G2").ClearContents
Me.Range("C4:G5").ClearContents
End Function


YS2000 wrote:
在Input dat...(恕刪)


To YS2000
測試後可以,不過我想了解一下code,可以参閲哪邊,麻煩了,謝謝~
1.在VBA裡選取你不懂的code 按F1 會有說明
微軟網站都有一些VBA的說明
2.網路上搜尋也很方便

YS2000 wrote:
1.在VBA裡選取你...(恕刪)


不好意思,再在請問一個問題, 如果想使Lot No.(1234456), 使用 left 函數要如何增加於程式?
EX:
1234456 -> 1234

註: Excel 函數 = left (儲存格,想要顯示的位數)

*小白* wrote:
不好意思,再在請問...(恕刪)




---
.Range("A2:B2").Offset(R) = Array(left(Me.Range("E1").Value,4), Me.Range("E2").Value)
也可以拆成
.Range("A2").Offset(R) =left(Me.Range("E1").Value,4)
.Range("B2").Offset(R) =Me.Range("E2").Value
---
Me.Range("E1").Value 就是LOT NO.哪一格






YS2000 wrote:
---.Range(...(恕刪)


謝謝YS2000, 終於解決我的VBA問題
.Range("A2").Offset(R) =left(Me.Range("E1").Value,4)
我把這設為
.Range("A2").Offset(R) =(Me.Range("=left("E1").Value"),4)
原來設錯了
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!