2015-04-06 3 views
0

Ниже показана нижняя половина запроса, над которым я работаю. Запрос возвращает все значения, которые я хочу, но CSV разрывает имена учетных записей, которые включают запятые (например, Sales, General и admin) в несколько столбцов.Функция простой замены

Я начал смотреть код VBA несколько недель назад и, несмотря на поиск многочисленных страниц в функции замены, я не мог понять, как заставить его работать внутри моего кода, особенно после запроса и перед разделителем, чтобы имена учетных записей остаются неизменными/отдельными от данных.

Имена учетных записей меняются довольно часто, поэтому в конечном итоге мне нужен код, который позволяет мне вводить конкретные имена учетных записей, содержащие запятые, поэтому код знает, чтобы игнорировать эти запятые или функцию типа синтаксического анализа. Заранее спасибо.

QueryQuote: 
     With Sheets("Income").QueryTables.Add(Connection:="URL;" & qurl, Destination:=Sheets("Income").Range("a1")) 
      .BackgroundQuery = True 
      .TablesOnlyFromHTML = False 
      .Refresh BackgroundQuery:=False 
      .SaveData = True 
     End With 


     Sheets("Income").Range("a1").CurrentRegion.TextToColumns Destination:=Sheets("Income").Range("a1"), DataType:=xlDelimited, _ 
      TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
      Semicolon:=False, Comma:=True, Space:=False, other:=False 

    Sheets("Income").Columns("A").ColumnWidth = 20 
    Sheets("Income").Columns("B:L").ColumnWidth = 8 


End Sub 

ответ

0

Это текст по столбцам формуле:

Sheets ("Доход") Range ("a1") CurrentRegion.TextToColumns _ Направление:... = Sheets "Доход") Range ("a1 «), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = False, Tab: = True, Запятая: = False, _ Comma: = True, Space: = False, другой: = False

Comma: = True - это то, что разделяет ваши данные. Попробуйте изменить это на false.

0

Поиск и замена:

Cells.Replace What:="insert text here", Replacement:"insert replacement text here", _ 
 
LookAt:=xlPart, SearchOrder:=xlByRows, _ 
 
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Это Vba для поиска и замены функции. Используйте это для каждой фразы, которая должна быть найдена и заменена.

+0

Итак, я попробовал функцию поиска и замены, которую вы предоставили, но похоже, что функция замены не будет работать всякий раз, когда csv все еще накладывается вместе с запятыми. Поэтому, чтобы заменить, мне пришлось бы перечислять (Sales, General and Administrative, 50,20,80,55,60,20), и цифры меняются в зависимости от компании. –

+0

Какой конечный результат вы пытаетесь получить? Вы хотите заменить цифры на имя или наоборот? – Adiamond

Смежные вопросы