如何自动在Excel中添加一列并按规则填入相应的值?

Michael8367 2013-09-03 04:22:00
原表为

证券
- DR . 存托
- DREQ . 股票存托凭证
- USD . 美元
AU US . ANGLOGOLD ASHANTI-SPON ADR
BVN US . CIA DE MINAS BUENAVENTUR-ADR
EC US . ECOPETROL SA-SPONSORED ADR
FBR US . FIBRIA CELULOSE SA-SPON ADR
GFI US . GOLD FIELDS LTD-SPONS ADR
GGB US . GERDAU SA -SPON ADR
LKOD LI . LUKOIL OAO-SPON ADR
MNOD LI . MMC NORILSK NICKEL JSC-ADR
NLMK LI . NOVOLIPET STEEL-GDR REG S
OGZD LI . GAZPROM OAO-SPON ADR
PBR US . PETROLEO BRASILEIRO S.A.-ADR
- EQ . 股票
- EQ01 . 普通股
- AUD . 澳大利亚
AMC AU . AMCOR LIMITED
BHP AU . BHP BILLITON LTD
FMG AU . FORTESCUE METALS GROUP LTD
IPL AU . INCITEC PIVOT LTD
NCM AU . NEWCREST MINING LTD
RIO AU . RIO TINTO LTD
WPL AU . WOODSIDE PETROLEUM LTD
- CAD . 加拿大
AEM CN . AGNICO EAGLE MINES LTD
AGU CN . AGRIUM INC
CNQ CN . CANADIAN NATURAL RESOURCES

需要变为

证券
- DR . 存托 DR
- DREQ . 股票存托凭证 DR
- USD . 美元 DR
AU US . ANGLOGOLD ASHANTI-SPON ADR DR
BVN US . CIA DE MINAS BUENAVENTUR-ADR DR
EC US . ECOPETROL SA-SPONSORED ADR DR
FBR US . FIBRIA CELULOSE SA-SPON ADR DR
GFI US . GOLD FIELDS LTD-SPONS ADR DR
GGB US . GERDAU SA -SPON ADR DR
LKOD LI . LUKOIL OAO-SPON ADR DR
MNOD LI . MMC NORILSK NICKEL JSC-ADR DR
NLMK LI . NOVOLIPET STEEL-GDR REG S DR
OGZD LI . GAZPROM OAO-SPON ADR DR
PBR US . PETROLEO BRASILEIRO S.A.-ADR DR
- EQ . 股票 EQ
- EQ01 . 普通股 EQ
- AUD . 澳大利亚 EQ
AMC AU . AMCOR LIMITED EQ
BHP AU . BHP BILLITON LTD EQ
FMG AU . FORTESCUE METALS GROUP LTD EQ
IPL AU . INCITEC PIVOT LTD EQ
NCM AU . NEWCREST MINING LTD EQ
RIO AU . RIO TINTO LTD EQ
WPL AU . WOODSIDE PETROLEUM LTD EQ
- CAD . 加拿大 EQ
AEM CN . AGNICO EAGLE MINES LTD EQ
AGU CN . AGRIUM INC EQ
CNQ CN . CANADIAN NATURAL RESOURCES EQ
G CN . GOLDCORP INC EQ
IMO CN . IMPERIAL OIL LTD EQ
K CN . KINROSS GOLD CORP EQ

规则为,DR代表存托,EQ代表股票,FI代表债券,TR代表基金等等。从表格最顶行往下,遇到这几个标识,就在添加的列中用该标识标注,直到遇到其他规定的标识截止。
比如上表例子中,最先遇到的是DR 存托,那么就要在存托及以下的行中,在增加的列上都标注上DR,直到遇到了EQ 股票,则这一列往下就要标记为EQ。

请问这个该如何用程序来实现?
...全文
1635 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mnxm 2013-09-03
  • 打赏
  • 举报
回复
向第三列添加
Sub test1()

Dim mem As String

For Each c In Range(Cells(1, 1), Cells([A1048576].End(xlUp).Row, 1))

    For Each a In Array("DR", "EQ", "FI", "TR")
    
        If a = c.Value Then
        mem = a
        End If
        
    Next
    
    Cells(c.Row, 3) = mem
    
Next

End Sub

5,174

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧