10

セル A1:A1000 にデータがあります。次のように、名前のリストの後に小さなメモが続きます。

  • サム「早く
  • ニック・ロング
  • トム「早く

それらはすべて"、名前の後にスペースがあり、その後にメモがあります。私がやろうとしているのは、名前の後のすべてを削除することです。

これを行うためにマクロをいじっていましたが、何も機能しませんでした。どうすればこれを行うことができるでしょうか?

4

6 に答える 6

26

これは、マクロを使用しない気の利いたトリックです。

適切な範囲を選択し (または単にクリックしてA列全体を選択することもできます)、 を実行しCtrl+F、を正確に入力して、ボックスを空のままにします。今すぐクリックしてタダ!ReplaceFind"*Replace withReplace all

*置換ボックスを空のままにしたワイルドカードとして使用するため、引用符の後 (および引用符を含む) はすべて何も置き換えません。

編集:ここで示唆されているように、これのVBAコードは次のとおりです。

Columns("A:A").Replace What:="""*", Replacement:="", LookAt:=xlPart
于 2012-12-19T17:45:48.063 に答える
5

簡単!Convert Text to Columns使用しているExcelのバージョンはわかりませんが、要するに、を実行してから、区切り記号を使用してセルを分割したいと考えています"。これにより、必要なデータと削除できるデータの 2 つの列が残ります。

Office 2010 のウォークスルーは次のとおりです。

  1. 列 A を強調表示する
  2. Dataメニューを見つける
  3. Convert Text to Columnsメニューを見つける
  4. ピックDelimitedアンドヒットnext
  5. Otherボックスに、次のように入力します。"
  6. 打つFinish

終わり!これで、すべての名前が列 A に表示され、列 B を削除できます。

要約すると、「テキストを列に変換」を実行してから、区切り文字を使用してセルを分割し"ます。超簡単で速い。

于 2012-12-19T17:49:46.247 に答える
4

いくつかのオプション:

交換

Range("A1:A1000").Replace """*", vbNullString

値をさらに操作する必要がある場合は、以下がより適切です。

正規表現の場合:

Dim str As String, strClean As String
Dim cell As Range

For Each cell In Range("A1:A1000")

    With CreateObject("vbscript.regexp")
        .Pattern = "\""(.*)"
        .Global = True
        cell = .Replace(cell, vbNullString)
    End With

Next cell

正規表現を使用しない場合、文字列を分割します。

Dim strSplit() As String
Dim cell As Range

For Each cell In Range("A1:A1000")

    If (cell.Value <> vbNullString) Then

        cell.Value = Split(cell.Value, """")(0)

    End If

Next cell
于 2012-12-19T18:16:23.000 に答える
2

ソースデータを保持したい場合は、次の列の簡単なExcel数式を使用して保持することもできます。データが列Aにあるとすると、次の数式は名前のみを返します。=LEFT(A1,SEARCH("""",A1)-1)

于 2012-12-19T21:38:33.650 に答える
1
Sub Macro1()
    For Row = 1 To 1000
       S = Range("A" & Row).Cells.Value
       Pos = InStr(S, Chr(34))
       If Pos > 0 Then Range("A" & Row).Cells.Value = Left(S, Pos - 1)
    Next
End Sub
于 2012-12-19T17:49:22.560 に答える
0

を押しctrl + fて をクリックし、ボックスreplace tabに入力*してをクリックします。箱に何も入れる必要はありません。ここでは、 の後のすべてを置き換えています。find whatreplace allreplace.

于 2017-09-12T13:34:25.637 に答える