Я понятия не имею, что я делаю, и если вам хочется кричать на меня, это круто.Сравнение содержимого ячеек столбца с текстовым файлом и копирование соответствующих строк в другую книгу VBA
Мне интересно, как бы я проверил значения каждой ячейки в столбце D на листе, называемом PriceList, со значениями в текстовом файле ItemNumber.txt.
Если содержание ячеек в столбце равно одному из значений в указанном текстовом файле я хочу, чтобы скопировать строку и вставьте его в sheet1 ....
Option Explicit
Sub CompareValue()
Dim FileNum As Integer
Dim DataLine As String
Dim cel As Range
Dim celString As String
' Select file to be opened
FileNum = FreeFile()
Open "C:\Users\jreinhold\Documents\ItemNumbers.txt" For Input As #FileNum
Set myRange = Range("D:D")
For i = 1 To myRange.Rows.Count 'loop through rows by using i as a cell reference
Do While Not EOF(FileNum) 'run input from file while not end of file
Line Input #FileNum, DataLine 'input line data into DataLine
' Check value of cell against read in data
If InStr(DataLine, myRange.Cells("D", i).Value) = 0 Then 'compare DataLine to cell i
' Copy Row Where match resides
DataLine = DataLine + 1 'if value of comparison is 0 add 1 to data line and get next line in text file
Loop 'Loop back around and plus next line for the data from the file in and check values against cell i again
End If 'end If once value for comparison is true
Source.Rows(c.Row).Copy Target.Rows(i) ' Copy row
Sheets("Sheet1").Paste ' Paste row into Sheet1
i = i + 1 ' add 1 to i in order to continue to next cell in column
Next i 'check next cell for the data inputs using the same code.
Wend
End Sub
Добро пожаловать в SO! Прочитайте [Как спросить] (http://stackoverflow.com/help/how-to-ask) для предложений о том, как задать вопрос и что мы ожидаем. При этом вам нужно будет найти несколько методов и объединить: возможно, начните с «Проверить текстовый файл для строки VBA», «Скопировать из текстового файла в Excel VBA». На самом деле есть несколько способов выполнить вашу задачу, но мы хотели бы видеть некоторые усилия с вашей стороны. Дайте ему вихрь, и дайте нам знать, что работает, а что нет для вас. – BruceWayne
Благодарим за предложение. Я попытался сохранить номера элементов в массиве и имел катастрофические результаты. –
Возможно, даже откройте Excel, запустите макросъемку, затем откройте текстовые файлы из Excel, сделайте свой поиск (вероятно, CTRL + F), когда вы найдете, сделайте свое копирование/вставку. Затем остановите рекордер, посмотрите на код. Это будет пронизано операторами '.Select', поэтому ознакомьтесь с [Как избежать использования' .Select'] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in- excel-vba-macros), чтобы сократить его до более управляемого кода. Если у вас есть ** любой ** код или попытки, пожалуйста, отредактируйте его в своем OP, чтобы мы могли вам помочь. – BruceWayne