0

操作するデータを含む XL ファイルがあります。これを行うには VB スクリプトを使用する必要があると思いますが、数式を使用した簡単な方法があるかもしれません。同じように、誰かが次のことを達成する両方の方法を指摘できますか?

シート 1 に数値 (ID) の列があります。各 ID をインデックスとして使用して、シート 2 のリストを検索したいと考えています。シート 2 には 2 つの列があります。最初の列はインデックスで、2 番目の列はテキスト文字列です。

りんご1個

2 オレンジ

3 ナシ

私が欲しいのは、シート 1 の ID の列を、シート 2 から検索されたテキスト文字列に置き換えることです!

それだけです...助けてください!

4

1 に答える 1

2

そこは厳しい状況ではありません。ここにいくつかの解決策があります...

VBAの場合:

VBは少し新しいとおっしゃっていたので、各行を説明していきました。また、コードはフリーハンドなので、どこかにエラーを残した場合はご容赦ください。

Sub replaceData()

dim i as integer, j as integer 'These are just some variables we'll use later.
dim sheetOne as worksheet, sheetTwo as worksheet, myWb as workbook
dim myData as string, myId as string

set myWB = excel.activeworkbook 'These three lines set your workbook/sheet variables.
set sheetOne = myWB.worksheets("Old Data")
set sheetTwo = myWB.worksheets("New Data")

for i = 1 to sheetTwo.usedrange.rows.count 'This loops through the rows on your second sheet.
   myId = sheetTwo.cells(i,1).value 'This assigns the value for your id and the data on your second sheet.
   myData = sheetTwo.cells(i,2).value
   for j = 1 to sheetOne.usedrange.rows.count 'This loops through the rows on your first sheet.
      if sheetOne.cells(j,1).value = myId then 'This checks each row for a matching id value.
         sheetOne.cells(j,1).value = myData 'This replaces that id with the data we got from the second sheet.
      end if
   next j
next i

end sub

Excelの数式を使用する場合:

  1. 次の数式を最初のワークシートのセルC1(置き換えるIDのシート)に配置します。**「InsertSheetTwoNameHere」の部分を2番目のシートの名前に置き換える必要があることに注意してください(ただし、これらの一重引用符は削除しないでください)。また、「1000」をシート2の最後に使用された行の番号に置き換える必要があることに注意してください。

    = vlookup(A1、'InsertSheetTwoNameHere'!$ A $ 1:$ B $ 1000,2、FALSE)

  2. 次に、セルのハンドルをドラッグして、セル自体を(それが何と呼ばれていても)範囲の最後までコピーします。

  3. 次に、それらのセルをコピーし、[ 値のみ]設定を使用してIDに貼り付けます。

これがお役に立てば幸いです。

于 2013-01-06T07:06:25.203 に答える