Программирование данных в Excel в строку в книгу в CSV - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь создать VBA, где я вводю информацию о платежах по 22 столбцам. Эти столбцы включают сумму платежа, счет и т. Д. c. Затем я могу запустить макрос, и он форматирует данные в пригодную для использования строку, а затем экспортирует данные в файл CSV. Данные должны быть отформатированы с апострофом и запятыми между информацией.

Например, столбец B - это идентификатор продавца, а столбец C - имя продавца (столбец A не заполнен). Я набираю 123 в столбце B и xyz в столбце C. Он преобразуется в '123', 'xyz', ..., ..., цель - завершить форматирование, объединить его и затем экспортировать в CSV. В настоящее время я использую смесь формул / функций и макроса.

Я использую формулы для правильного форматирования, используя: = "'" & B2 & "'" & "," Затем использую concatenate для объединения все 22 строки в одну строку

Затем я записал макрос со следующим:

    Sub BCM_CSV_export()
'
' BCM_CSV_export Macro

    Range("B21").Select
    ActiveCell.FormulaR1C1 = "=""'""&R[-19]C&""'""&"","""
    Range("B21:V21").Select
    Selection.FillRight
    Range("B21:V30").Select
    ActiveWindow.SmallScroll Down:=9
    Selection.FillDown
    Range("B40").Select
    ActiveCell.FormulaR1C1 = "=CONCAT(R[-19]C:R[-19]C[20])"
    Range("B40:B49").Select
    Selection.FillDown
    Workbooks.Add
    Windows("BCM CSV Workbook.xlsm").Activate
    Selection.Copy
    Windows("Book1").Activate
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E13").Select
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs "CSVDate.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
    ActiveWindow.Close
    Selection.ClearContents
    Range("B21").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=-24

End Sub

Код работает на моем ноутбуке. Файл CSV отображается в «Мои документы». Но мой коллега сталкивается с ошибками. Кажется, код не работает.

У меня вопрос в 2 раза: 1. Что-то не так с моим макросом, что он работает только на моем ноутбуке? 2. Есть ли способ преобразовать 22 строки данных в одну текстовую строку и в новую рабочую книгу CSV без промежуточных шагов моего использования функции форматирования и объединения текстовых строк?

Я использовал функцию поиска и не видел ничего, что точно соответствует этому. Большое спасибо всем!

1 Ответ

0 голосов
/ 12 апреля 2020

Вам лучше проверить две строки кодов:

   Windows("BCM CSV Workbook.xlsm").Activate

   Windows("Book1").Activate

Возможно, у вашего коллеги нет имени worrkbook BCM CSV Workbook.xlsm и Book1 открыты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...