0

Select Case を使用して生産タイム テーブルを記録しようとしています。私はいくつかの角度を試しました.1つはSelect Caseです。マクロを実行するたびに、デフォルトのエラー「間違ったモデルが入力されました....」が表示されます

Private Sub Transfer()

Dim ModR As String
Dim Count1 As Integer
Dim Count2 As Integer
Dim Count3 As Integer
Dim Count4 As Integer
Dim Count5 As Integer

Count1 = 0
Count2 = 0
Count3 = 0
Count4 = 0
Count5 = 0

ModR = Worksheets(1).Range("B3").Value

Select Case ModR
  Case "Model 1"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B3:B5").Offset(Count1, 0).PasteSpecial
    Count1 = Count1 + 1
  Case "Model 2"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B7:B9").Offset(Count2, 0).PasteSpecial
    Count2 = Count2 + 1
  Case "Mode1 3"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B11:B13").Offset(Count3, 0).PasteSpecial
    Count3 = Count3 + 1
  Case "Model 4"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B15:B17").Offset(Count4, 0).PasteSpecial
    Count4 = Count4 + 1
  Case "Model 5"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B19:B21").Offset(Count5, 0).PasteSpecial
    Count5 = Count5 + 1
  Case Else
    MsgBox "Wrong Model Entered / Model Does Not Exist"
  End Select
End Sub

Public Sub call_Transfer()
  Call Transfer
End Sub

私は問題が内にあると考えています

ModR = Worksheets(1).Range("B3").Value
4

1 に答える 1

0

インクリメントを機能させるには、グローバル変数を使用する必要があります。また、オフセットにより、セルが右ではなく下に移動します。コードを変更しました。オフセットをインクリメントし、新しいマクロの実行時に右にシフトします。

Dim Count1 As Integer
Dim Count2 As Integer
Dim Count3 As Integer
Dim Count4 As Integer
Dim Count5 As Integer

Private Sub Transfer()

Dim ModR As String

ModR = Worksheets(1).Range("B3").Value

Select Case ModR
  Case "Model 1"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B3:B5").Offset(0, Count1).PasteSpecial
    Count1 = Count1 + 1
  Case "Model 2"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B7:B9").Offset(0, Count2).PasteSpecial
    Count2 = Count2 + 1
  Case "Model 3"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B11:B13").Offset(0, Count3).PasteSpecial
    Count3 = Count3 + 1
  Case "Model 4"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B15:B17").Offset(0, Count4).PasteSpecial
    Count4 = Count4 + 1
  Case "Model 5"
    Worksheets(1).Range("B4:B6").Copy
    Worksheets(2).Range("B19:B21").Offset(0, Count5).PasteSpecial
    Count5 = Count5 + 1
  Case Else
    MsgBox "Wrong Model Entered / Model Does Not Exist"
  End Select
End Sub

Public Sub call_Transfer()
  Call Transfer
End Sub

これをモジュールに貼り付けるだけです。あなたが探していたことがうまくいくことを願っています。

于 2014-05-21T13:11:59.087 に答える