我有一个电子表格,其中包含一行文字

时间:2016-10-18 17:33:33

标签: excel vba function excel-formula

IE:

  23    HL*3*2*23*0
  24    PAT*19
  25    NM1*QC*1*CUSTOMER*COLE
  26    N3*228 PINEAPPLE CIRCLE
  27    N4*CORA*PA*15108
  28    DMG*D8*19940921*M
  29    CLM*945405*5332.54***12>B>1*Y*A*Y*Y*P
  30    HI*BK>2533
  31    LX*1
  32    SV1*HC>J2941*5332.54*UN*84***1
  33    DTP*472*RD8*20110511-20110511
  34    REF*6R*1099999731
  35    NTE*ADD*GENERIC 12MG CARTRIDGE
  36    LIN**N4*00013264681
  37    CTP****7*UN

我想用第29行的文本填充C列作为最小行,其中“945405”一直到第37行(其中包含文本“CTP”的那一行)。由于权限,我无法在VBA中执行此操作。是否有一个公式将获取此值(它始终是CLM * xxxxxx * ...),使用“CLM”作为最小行并将CTP作为MAX行一直通过SS将其分配给C列? IE:

  23    HL*3*2*23*0 
  24    PAT*19  
  25    NM1*QC*1*CUSTOMER*COLE  
  26    N3*228 PINEAPPLE CIRCLE 
  27    N4*CORA*PA*15108    
  28    DMG*D8*19940921*M   
  29    CLM*945405*5332.54***12>B>1*Y*A*Y*Y*P   945405
  30    HI*BK>2533                              945405
  31    LX*1                                    945405
  32    SV1*HC>J2941*5332.54*UN*84***1          945405
  33    DTP*472*RD8*20110511-20110511           945405
  34    REF*6R*1099999731                       945405
  35    NTE*ADD*GENERIC 12MG CARTRIDGE          945405
  36    LIN**N4*00013264681                     945405
  37    CTP****7*UN                             945405
  38    NM1*DK*1*PATIENT*DEBORAH****XX*1    
  39    N3*123 MAIN ST*APT B    

**** *****更新

我获得了VBA的权限。我该如何循环呢?

这是我想要完成的更清晰的图片 enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用=MID(Source_Cell, Start_Position, Desired_Length)函数来拉取子字符串。在你的情况下,它将是:

=MID(B29, 5, 6)

然后,您可以将此公式放在您希望的所有单元格中。