當一個公式中,含有返回一組數的表達式時,需使用數組進行運算。在公式輸入完成之後,按ctrl+shift+enter三鍵,會自動加上大括號{}{=SUM(IF(MOD(COLUMN($D4:$LB4),10)=4,$D4:$LB4,0))} 指加總範圍內每10欄的第四欄。
參考 https://www.dotblogs.com.tw/areswang/2020/10/26/Dynamic_array_formulas_2
當一個公式中,含有返回一組數的表達式時,需使用數組進行運算。在公式輸入完成之後,按ctrl+shift+enter三鍵,會自動加上大括號{}{=SUM(IF(MOD(COLUMN($D4:$LB4),10)=4,$D4:$LB4,0))} 指加總範圍內每10欄的第四欄。
參考 https://www.dotblogs.com.tw/areswang/2020/10/26/Dynamic_array_formulas_2
Sub 按鈕1_Click()
‘On Error Resume Next
On Error GoTo MyErrorHandler:
s_line = Cells(1, 8)
e_line = Cells(1, 9)
If Not IsNumeric(s_line) Then
MsgBox (“請輸入數字”)
End
End If
If Not IsNumeric(e_line) Then
MsgBox (“請輸入數字”)
End
End If
If s_line > e_line Then
MsgBox (“請輸入正確起訖”)
End
End If
If e_line – s_line > 4 Then
MsgBox (“最多輸入5筆資料”)
End
End If
Range(“C5:F9”).Value = “”
For i = 1 To e_line - s_line + 1
'Cells(4 + i, 3).Value = Worksheets("shipment").Cells(s_line + i - 1, 14).Value
Cells(4 + i, 3).Value = Application.WorksheetFunction.VLookup(Worksheets("shipment").Cells(s_line + i - 1, 6).Value, Worksheets("item_ref").Range("A:E"), 2, False)
Cells(4 + i, 5).Value = Worksheets("shipment").Cells(s_line + i - 1, 7).Value
Cells(4 + i, 6).Value = Worksheets("shipment").Cells(s_line + i - 1, 9).Value
Next i
Exit Sub
MyErrorHandler:
If Err.Number = 1004 Then
MsgBox “第” & CStr(s_line + i – 1) & “行無參照品名”
Resume Next
ElseIf Err.Number = 13 Then
MsgBox “You have entered an invalid value.”
End If
End Sub
自訂 IsInt函數 檢查是否是整數
Function IsInt(aValue as Variant) As Boolean
On Error Resume Next
IsInt = (CInt(aValue) = aValue)
On Error Goto 0
End Function