0

我有一个小型电子表格,其中有一列标题为“CAT”。根据“CAT”中的值,我想在“CAT”旁边插入另一个名为“WHEEL NUMBER”的列。“CAT”值有七个可能的值(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 回答