Excel VBA質問箱 IV

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

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


57078 / 76738 ←次へ | 前へ→

【24400】Re:ウッシさんお願いします!
発言  G-Luck  - 05/4/21(木) 14:42 -

引用なし
パスワード
   ▼yayoi さん:
相変わらず、エラー処理はしていません。

Sheet2に
B 田中 C 近藤 X 松田
B 伊藤
B 齊藤

てな感じで、A1から入力されているとして、
列位置を入力した場合は、必ず名前を入力してください。
空白を希望なら、スペースを入力してください。
列番は、アルファベットで、必ず順番に並べて入力してください。
OnTimeは使っていないので、下記コードは、Sheet1にコピーしてください。
セルの選択の変更で処理されます。
ウィンドウの固定をA列でしといてね。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim rg As Variant
  Dim Clm As Long
  Dim i As Long
  Dim j As Long
  Dim ChangeClm As Long
  
  rg = ThisWorkbook.Worksheets("Sheet2").Range("A1").CurrentRegion.Value
  Clm = ThisWorkbook.Windows(1).Panes(2).VisibleRange.Cells(1).Column
  
  Application.ScreenUpdating = False
  
  For i = LBound(rg, 1) To UBound(rg, 1)
    For j = LBound(rg, 2) To UBound(rg, 2) Step 2
      If rg(i, j) <> "" Then
        ChangeClm = Range(rg(i, j) & 1).Column
        If ChangeClm <= Clm Then
          Range("A" & i) = rg(i, j + 1)
        Else
          Exit For
        End If
      End If
    Next j
  Next i
  
  Application.ScreenUpdating = True
End Sub

0 hits

【24371】ウッシさんお願いします! yayoi 05/4/20(水) 18:35 質問
【24376】Re:ウッシさんお願いします! ウッシ 05/4/20(水) 20:54 発言
【24378】Re:ウッシさんお願いします! yayoi 05/4/20(水) 21:13 質問
【24385】Re:ウッシさんお願いします! ウッシ 05/4/20(水) 22:18 回答
【24386】Re:ウッシさんお願いします! yayoi 05/4/20(水) 22:25 お礼
【24400】Re:ウッシさんお願いします! G-Luck 05/4/21(木) 14:42 発言

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