2016-12-20 5 views
0

名前の範囲が「AlgeriaBchar」です。 (Algeria-> countrynameとBchar-> statename) 国のドロップダウンと国のドロップダウン(つまり、E7 + F7)のコンテンツとして都市のドロップダウンに関する制約を使用します。 img staenameにあるように、 'Béchar'はchar 'é'を削除する必要があります。それはa-z、A-Z、0-9に収まりません。 私も、私は、私はそれを得るためにこれらのfucntionsを置くべき順序になっていないmは任意の空白、hiphns、角括弧、国のアポストロフィマークと状態のドロップダウンの内容ここで、正確に私はexcelでINDIRECT()を配置する必要がありますか?

enter image description here

  1. を削除する必要がありますto 'AlgeriaBchar' わかりやすくするために、私はExcelでのデータ検証機能のインデントを提供しました。 私は都市のドロップダウンの有効性制約にこの機能を入れています。

  2. ループのために必要な文字列の各文字を評価する必要があるかもしれません。 MID(E7、1、1)は私に1番目の唯一のチャプターを与えます。どのように文字列の長さまでループすることができます。 誰も私を示唆することができます。

    = IF( NOT( AND(CODE(MID(E7、1、1))> = 65、CODE(MID(E7、1、1))< = 90)
    ) AND( NOT( AND(CODE = 122(MID(E7、1、1))> = 97、CODE(MID(E7、1、1))<) )
    ) AND( NOT( AND(CODE (MID(E7,1,1))> = 48、CODE(MID(E7,1,1))< = 57)

    ) 、SUBSTITUTE(E7、MID(E7、1、1)、 "")、 "" )

INDIRECT( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( 「」「」) 「 - 」「」 「」「)」) 「」「 」「」「」「」」) ) )

答えて

0

そのためのマクロ。これを検討してくださいextendoffice.com

1)ExcelでAlt + F11キーを押し続けると、Microsoft Visual Basic for Applicationsウィンドウが開きます。

2)[挿入]> [モジュール]をクリックし、[モジュール]ウィンドウに次のマクロを貼り付けます。

Function StripAccent(thestring As String) 

Dim A As String * 1 
Dim B As String * 1 
Dim i As Integer 

Const AccChars = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ-[]' " 

For i = 1 To Len(AccChars) 

    A = Mid(AccChars, i, 1) 

    thestring = Replace(thestring, A, "") 

Next 

StripAccent = thestring 

End Function 


Function TrimmedConcat(A As String, B As String) 

    TrimmedConcat = StripAccent(A) & StripAccent(B) 

End Function 

次に、あなたの文書で、セルをクリックし、それが第二として、最初の引数や都市名などの国名を選択し、通常の関数であるかのようにTrimmedConcatを使用しています。あなたの例では

=TrimmedConcat(E7,F7)

私はそれが役に立てば幸い!

+0

こんにちは..ありがとうございました。それは実際に動作します。しかし、私はApache POI + javaを使用してExcelシートを生成する必要があります。 Apache POIがマクロの挿入をサポートしていないことが判明しました。だから私はそれを挿入する。しかし、あなたのコードは私を助けました。私は、あなたが「AccChars」を提供したときに、手動で呪文をチェックしました。そして、それは働いた!もう一度、ありがとう。 –

関連する問題