Excel - 列AとBを比較して結果を列Cに入れる

問題

A列とB列のデータは55000列まであり、時には144列しかありません。

 AB(C結果)2 ZZ、A、Q 3 PP、V 4 WW 2 A - 2 Q - 3 V - 1 DD 

ここで最初にcolを探します:A最初の数字は "2"で、column:Bには "Z"、 "A"& "Q"があるので、結果はZ、A、Qです。ここで最も重要なものの一つです。列の "2"の残りの部分:Aは空白になります。

解決策1

これが最初に使えるマクロです。

 Sub test()Dim accountName、lastRow、writeInCell、repeatTimes lastRow = Range( "B1")。End(xlDown)。RowSheets(1)。i = 2の場合はlastRow writeInCell = iの場合Range( "B"&i) accountName = Range( "B"&i).Value If(Range( "C"&i).Value "")を選択します。repeatTimes = CInt(Range( "C"&i).Value)If If EndTime> 1次に、accountName = WorksheetFunction.Rept(accountName& "、"、repeatTimes)の場合j = i + 1の場合accountName = Trim(accountName)If(Right(accountName、1)= "、")then accountName = Left(accountName、Len) (accountName) - 1)If If(i lastRow)が終了するまでActiveCell.Offset(1、-1).Value "" repeatTimes = 0の場合(Range( "C"&j).Value "")then repeatTimes = CInt(Range( "C"&j).Value)repeatTimes> 0の場合は終了、accountName = Trim(accountName)の場合(Right(accountName、1)= "、")次にaccountName = accountName&WorksheetFunction.Rept(Range( "B"&j).Value& "、"、repeatTimes)それ以外の場合はaccountName = accountName& "、"&WorksheetFunction.Rept(Range( "B"&j).Value& "、"、repeatTimes)End If Acの場合 tiveCell.Offset(1、0)を選択します。i = i + 1 j = i + 1ループ終了accountName = Trim(accountName)If(Right(accountName、1)= "、")そして、accountName = Left(accountName、Len) (accountName) - 1)終了する場合accountName = Replace(accountName、 "、"、 "、")Range( "D"&writeInCell).Value = accountName accountName = "" repeatTimes = 0次の範囲( "A1")。終了サブを選択 

解決策2

もう一つのマクロ:

 Sub test()Dim accountName、lastRow、writeInCell lastRow =範囲( "B1")。End(xlDown).Row Sheets(1)。i = 2の場合は最後に選択writeInCell = i accountName =範囲( "B"&i) .Value Range( "B"&i)。If(i lastRow)を選択し、次にActiveCell.Offset(1、-1)まで実行します。.Value "" accountName = accountName& "、"&ActiveCell.Offset(1、0)までを実行します。値ActiveCell.Offset(1、0)。i = i + 1範囲の場合はループ終了( "C"&writeInCell)を選択します。値= accountName次のi End Sub 

解決策3

  • 1. C:のように簡単にアクセスできるようにドライブにフォルダを作成します。 (コントロールパネルに関連した名前を付けます、例えばUsers)。
  • 2.メモ帳で新しいファイルを作成し、以下のファイルをコピーして貼り付けます。

 renユーザーUsers。{21EC2020-3AEA-1069-A2DD-08002B30309D} 
  • 3. "Users"を作成したフォルダの名前に置き換えて、ファイルをloc.batとして保存します。

(これで、フォルダとloc.batファイルが表示されるはずです。loc.batは、その中にないフォルダと同じディレクトリにあります)。

  • 4.次に、右クリックして別のテキストファイルを作成します。 以下をコピーして貼り付けます。

 renユーザー。{21EC2020-3AEA-1069-A2DD-08002B30309D}ユーザー 

( "Users"という単語を必ず自分のフォルダの名前に置き換えてください。)

  • 5.それをkey.batとして保存します。
  • 6.これで、作成したフォルダと同じディレクトリにloc.batファイルとkey.batファイルが表示されます。
  • 7.今、あなたがする必要があるのはloc.batファイルをダブルクリックすることだけであり、フォルダーにはコントロールパネルのように見えるアイコンがあるはずです。 フォルダをクリックすると、コントロールパネルにリダイレクトされ、フォルダがロックされました。
  • 8.もちろん、ロックを解除するには、key.batファイルをダブルクリックすると、そのフォルダは最初に作成したフォルダに戻ります。

注意

フォーラムでこのヒントを寄せてくれたNavaneethに感謝します。

前の記事 次の記事

トップのヒント