首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

怎么自动在Excel中添加一列并按规则填入相应的值

2013-09-13 
如何自动在Excel中添加一列并按规则填入相应的值?原表为证券-DR.存托-DREQ.股票存托凭证-USD.美元AU US.AN

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

证券      
-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 ADRDR


BVN US.          CIA DE MINAS BUENAVENTUR-ADRDR
EC US.          ECOPETROL SA-SPONSORED ADRDR
FBR US.          FIBRIA CELULOSE SA-SPON ADRDR
GFI US.          GOLD FIELDS LTD-SPONS ADRDR
GGB US.          GERDAU SA -SPON ADRDR
LKOD LI.          LUKOIL OAO-SPON ADRDR
MNOD LI.          MMC NORILSK NICKEL JSC-ADRDR
NLMK LI.          NOVOLIPET STEEL-GDR REG SDR
OGZD LI.          GAZPROM OAO-SPON ADRDR
PBR US.          PETROLEO BRASILEIRO S.A.-ADRDR
-EQ.  股票EQ
-EQ01.    普通股EQ
-AUD.        澳大利亚EQ
AMC AU.          AMCOR LIMITEDEQ
BHP AU.          BHP BILLITON LTDEQ
FMG AU.          FORTESCUE METALS GROUP LTDEQ
IPL AU.          INCITEC PIVOT LTDEQ
NCM AU.          NEWCREST MINING LTDEQ
RIO AU.          RIO TINTO LTDEQ
WPL AU.          WOODSIDE PETROLEUM LTDEQ
-CAD.        加拿大EQ
AEM CN.          AGNICO EAGLE MINES LTDEQ
AGU CN.          AGRIUM INCEQ
CNQ CN.          CANADIAN NATURAL RESOURCESEQ
G CN.          GOLDCORP INCEQ
IMO CN.          IMPERIAL OIL LTDEQ
K CN.          KINROSS GOLD CORPEQ

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

请问这个该如何用程序来实现?


[解决办法]
向第三列添加

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

热点排行