Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


49096 / 76732 ←次へ | 前へ→

【32558】Re:抽出・入力方法
発言  ponpon  - 05/12/17(土) 16:06 -

引用なし
パスワード
   こんにちは。
文字列で対応することで課題は解消しました。
作業列にAD列を使用しています。
べたべたのコードで醜いですが・・・・。

=前提=
 ◎A列の書式は、文字列にしてください。(マクロではしていません)
 ◎C列の書式も、文字列にしてください。(〃)
 ◎商品番号は、前回と同じように10000、20000、30000・・・としています。

以下コードです。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim myNO As String
  Dim myR As Range
 
  Application.ScreenUpdating = False
  With Target
   If .Count > 1 Then Exit Sub
   If IsEmpty(.Value) Then Exit Sub
   If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
    Application.EnableEvents = False
    If .row = 2 Then
     myNO = Format(Date, "yymmdd") & "10001"
     .Offset(, -1).Value = 1
    End If
  
   
    For i = .row - 1 To 2 Step -1
      If Cells(i, "C").Value = .Value Then
       .Offset(, -1).Value = Cells(i, "B").Value + 1
       myNO = Format(Date, "yymmdd") & Mid$(Cells(i, "D"), 7) + 1
       Exit For
      Else
      Set myR = Range("D2", Range("D65536").End(xlUp))
        With myR.Offset(, 26)
               .Value = "=right(d2,len(D2)-6)"
               .Value = .Value
        End With
       .Offset(, -1).Value = 1
       myNO = Format(Date, "yymmdd") & _
       (Int(Application.Max(Range("AD:AD")) / 10000) + 1) * 10000 + 1

      End If
    Next
    .Offset(, -2).Value = Format(.row - 1, "00000")
    .Offset(, 1).Value = myNO
    Range("AD:AD").ClearContents
   
    Application.EnableEvents = True
   End If
  End With
  Application.ScreenUpdating = True

End Sub

0 hits

【32256】抽出・入力方法 どんぼ 05/12/11(日) 20:43 質問
【32261】Re:抽出・入力方法 ponpon 05/12/11(日) 22:19 お礼
【32552】Re:抽出・入力方法 どんぼ 05/12/17(土) 9:19 質問
【32556】Re:抽出・入力方法 ponpon 05/12/17(土) 12:42 発言
【32558】Re:抽出・入力方法 ponpon 05/12/17(土) 16:06 発言
【32562】Re:抽出・入力方法 どんぼ 05/12/17(土) 21:35 お礼

49096 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free