Для прайс листа в экселе написан макрос. В екселе он отлично работает.
Прайс называется Прайс.xls . VBA я не знаю, далее делалось интуитивно:
Макрос сохранил в macros.vb , показал путь до него в Pli в настройках прайслиста. Нажимаю Проверить. А он мне пишет: Нет файла _Прайс.xls !
В чем причина? или нужно в макросе пропмсывать чтобы прайслист пересохранялся с именем _Прайс.xls ? или как?
Спасибо.
Вот сам макрос (изменяет формат ячейки на текстовый, тк. иначе артикулы начинающиеся на 0 импортируются не правильно):
Sub DataToText()
Dim LastRow As Long, i As Long, z As String, iCol As Integer, iRow As Long, x As Range
LastRow = Cells(Rows.Count, 3).End(xlUp).Row
For i = 12 To LastRow
If Cells(i, 3) <> "" Then
z = CStr(Cells(i, 3).Text)
Cells(i, 3).NumberFormat = "@"
Cells(i, 3) = z
End If
Next
End Sub
Подскажите по VBA макросам
В этой теме последний постhttp://forum.elbuz.com/viewtopic.php?f= ... %81#p14941
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Да, очень помогло. Макрос запустился, но тот пример изменяет внешний вид прайса. Как оставить его в исходном виде???
Вот код из примера:
' Сохраняем данные в новом файле из буфера обмена
Set fs = CreateObject("Scripting.FileSystemObject")
varNewFileName = Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & "_" & ActiveWorkbook.Name
If fs.FileExists(varNewFileName) = True Then
Kill varNewFileName
End If
Application.CutCopyMode = False
Application.DisplayAlerts = False
Dim nSourceFile As Long
Dim nDestFile As Long
Dim nTotalSheets As Long
Dim nSheetsAdd As Long
nSourceFile = Workbooks.Count
nTotalSheets=Workbooks.Item(nSourceFile).WorkSheets.Count
Workbooks.Add
nDestFile = Workbooks.Count
If nTotalSheets>3 Then
For nSheetsAdd=1 TO nTotalSheets-3
Workbooks.Item(nDestFile).Sheets.Add
Next nSheetsAdd
End If
For lngSheetID=1 TO nTotalSheets
Workbooks.Item(nSourceFile).Sheets.Item(lngSheetID).Activate ' активируем лист источник
Workbooks.Item(nSourceFile).Sheets.Item(lngSheetID).UsedRange.Copy
Workbooks.Item(nDestFile).Sheets.Item(lngSheetID).Activate ' активируем новый лист
Workbooks.Item(nDestFile).Sheets.Item(lngSheetID).Paste
Workbooks.Item(nDestFile).Sheets.Item(lngSheetID).Name=Workbooks.Item(nSourceFile).Sheets.Item(lngSheetID).Name
Next lngSheetID
Workbooks.Item(nDestFile).Sheets.Item(1).Activate
Workbooks.Item(nSourceFile).Sheets.Item(1).Activate
Application.ScreenUpdating = True
Workbooks.Item(nDestFile).SaveAs varNewFileName, Workbooks.Item(nSourceFile).FileFormat, , , False, False, 1, 2
Workbooks.Item(nDestFile).Close
'Application.Quit
End Sub
Вот код из примера:
' Сохраняем данные в новом файле из буфера обмена
Set fs = CreateObject("Scripting.FileSystemObject")
varNewFileName = Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & "_" & ActiveWorkbook.Name
If fs.FileExists(varNewFileName) = True Then
Kill varNewFileName
End If
Application.CutCopyMode = False
Application.DisplayAlerts = False
Dim nSourceFile As Long
Dim nDestFile As Long
Dim nTotalSheets As Long
Dim nSheetsAdd As Long
nSourceFile = Workbooks.Count
nTotalSheets=Workbooks.Item(nSourceFile).WorkSheets.Count
Workbooks.Add
nDestFile = Workbooks.Count
If nTotalSheets>3 Then
For nSheetsAdd=1 TO nTotalSheets-3
Workbooks.Item(nDestFile).Sheets.Add
Next nSheetsAdd
End If
For lngSheetID=1 TO nTotalSheets
Workbooks.Item(nSourceFile).Sheets.Item(lngSheetID).Activate ' активируем лист источник
Workbooks.Item(nSourceFile).Sheets.Item(lngSheetID).UsedRange.Copy
Workbooks.Item(nDestFile).Sheets.Item(lngSheetID).Activate ' активируем новый лист
Workbooks.Item(nDestFile).Sheets.Item(lngSheetID).Paste
Workbooks.Item(nDestFile).Sheets.Item(lngSheetID).Name=Workbooks.Item(nSourceFile).Sheets.Item(lngSheetID).Name
Next lngSheetID
Workbooks.Item(nDestFile).Sheets.Item(1).Activate
Workbooks.Item(nSourceFile).Sheets.Item(1).Activate
Application.ScreenUpdating = True
Workbooks.Item(nDestFile).SaveAs varNewFileName, Workbooks.Item(nSourceFile).FileFormat, , , False, False, 1, 2
Workbooks.Item(nDestFile).Close
'Application.Quit
End Sub
Напишите конкретно, что Вас не устраивает и почему Вас это не устраивает.kolodkin писал(а):Да, очень помогло. Макрос запустился, но тот пример изменяет внешний вид прайса. Как оставить его в исходном виде???End Sub
Пишу макросы VBA на заказ от 100 руб. обращаться в личку.
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
Подключение макросов | Подключение макросов 2 | Регулярные выражения | Руководство E-Trade PLI | EdiTTempDir | РРЦ | правильное обновление ПЛИ и СС | данные импортируются как звездочки | контакты тех.поддержки
