0

「CAT」という見出しの列を持つ小さなスプレッドシートがあります。「CAT」の値に基づいて、「CAT」のすぐ隣に「WHEEL NUMBER」という別の列を挿入します。「CAT」値には 7 つの可能な値があります (CAR、VAN、HARLEY、HUFFY、TRICYCLE、XCYCLE、BUS)。ここに私のベースファイルがあります:

Number  CAT       Description
234     CAR       Family
324     VAN       Happy Family
342     HARLEY    Happy Dad
456     HUFFY     Happy Kid
653     TRICYCLE  Happy Child
543     XCYCLE    Blah Blah
563     BUS       School Stuff
765     CAR       New Family
675     CAR       Big Family
576     HUFFY     Kid Stuff

このスクリプトの実行が完了したら、次のことを確認したいと思います。

Number  CAT  Wheel Number   Description
234 CAR   Wheel4    Family
324 VAN   Wheel4    Happy Family
342 HARLEY    Wheel2    Happy Dad
456 HUFFY     Wheel2    Happy Kid
653 TRICYCLE  Wheel3    Happy Child
543 XCYCLE    Wheel3    Blah Blah
563 BUS   Wheel6    School Stuff
765 CAR   Wheel4    New Family
675 CAR   Wheel4    Big Family
576 HUFFY     Wheel2    Kid Stuff

基本的に、「WHEEL NUMBER」列を作成し、(CAR|VAN) の場合は「WHEEL4」、(HARLEY|HUFFY) の場合は「WHEEL2」、(TRICYCLE|XCYCLE) の場合は「WHEEL#」を新しいスプレッドシートのセルに挿入しました。

正しい方向へのキックは高く評価されます。

どうも

4

1 に答える 1

0

@TimWiliamsに同意します。可能であれば、数式を使用してVBAを使用しないようにしてください。ただし、状況に応じたスクリプトが必要な場合は、次のことを試すことができます。

Sub AddColumn()

    ' Turn off screen updating/calculating
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    ' Shift the column
    Columns("C:C").Insert shift:=xlToRight

    ' Name the new column
    Range("C1").Value = "Wheel Number"

    ' Activate the next cell and start populating
    Range("C2").Activate

    ' Use column A (the Number column) to determine the length
    ' of the data (this can be accomplished in other ways)
    ' Depends on there being no blank values in column A
    For i = 1 To Range("A1").End(xlDown).Row - 1
      ' Add the correct value based on the value in column B
      Select Case ActiveCell.Offset(0, -1).Value
        Case "HARLEY", "HUFFY"
          ActiveCell.Value = "Wheel2"
        Case "TRICYCLE", "XCYCLE"
          ActiveCell.Value = "Wheel3"
        Case "CAR", "VAN"
          ActiveCell.Value = "Wheel4"
        Case "BUS"
          ActiveCell.Value = "Wheel6"
      End Select

      ' Go to the next cell
      ActiveCell.Offset(1).Activate

    Next i

    ' Turn screen updating/calculating back on
    Range("A1").Activate
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

End Sub
于 2012-10-03T23:42:51.113 に答える