Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 транспонирование  [new]
saxarock
Member

Откуда: ЕКБ
Сообщений: 163
Товарищи знатоки,

Set objFSO = CreateObject("Scripting.FileSystemObject")
src_file = "~\transpon\src\14.xls"
dest_file = "~\transpon\for_load.csv"


Dim oExcel
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = False
Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)
oBook.SaveAs dest_file, 6 ',,,false,true,,,,,, -4143
oBook.Close False
oExcel.Quit


есть такого вида vba, который запускается из bat.
необходимо чтобы в dest_file - получался транспонированный файл src_file.
в VBA не силен, поэтому прошу тупо сделать рабочий код.
15 янв 19, 13:13    [21785592]     Ответить | Цитировать Сообщить модератору
 Re: транспонирование  [new]
big-duke
Member

Откуда:
Сообщений: 6683
saxarock,

В книге один лист, содержимое которого нужно транспонировать ?
15 янв 19, 13:40    [21785635]     Ответить | Цитировать Сообщить модератору
 Re: транспонирование  [new]
saxarock
Member

Откуда: ЕКБ
Сообщений: 163
big-duke,

Да.
15 янв 19, 13:43    [21785640]     Ответить | Цитировать Сообщить модератору
 Re: транспонирование  [new]
Казанский
Member

Откуда:
Сообщений: 1280
saxarock,

objFSO зачем? Это только часть кода? Вот часть с транспонированием
Option Explicit

Const src_file = "~\transpon\src\14.xls"
Const dest_file = "~\transpon\for_load.csv"
Dim oExcel, oBook, oNewBook
  Set oExcel = CreateObject("Excel.Application")
  oExcel.Visible = False
  oExcel.DisplayAlerts = False
  Set oBook = oExcel.Workbooks.Open(src_file)
  Set oNewBook = oExcel.Workbooks.Add(-4167) 'xlWBATWorksheet - книга с одним листом
  oBook.Sheets(1).UsedRange.Copy
  oNewBook.Sheets(1).Range("A1").PasteSpecial -4163, , , True 'xlValues...Transpose
  oNewBook.SaveAs dest_file, 6 ',,,false,true,,,,,, -4143
  oBook.Close False
  oNewBook.Close False
  oExcel.Quit
15 янв 19, 19:45    [21786114]     Ответить | Цитировать Сообщить модератору
 Re: транспонирование  [new]
saxarock
Member

Откуда: ЕКБ
Сообщений: 163
src_file = "~\1.xls"
dest_file = "~\l.csv"


Dim oExcel
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = true
Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)



ActiveSheet.Range("a1").Select
    name1 = ActiveSheet.Name
    name2 = ActiveWorkbook.Name
    MsgBox (name1)
    MsgBox (name2)
    ActiveSheet.Name = "V"
   'Set colvalue = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
   '                          LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
   'c = colvalue.Column
   'Set rowvalue = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
   '                          LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
   ' r = rowvalue.Row
   
   Set colvalue = Cells.Find("*", Range("a1"), xlValues, xlPart, xlByColumns, xlPrevious, False, False)
   c = colvalue.Column
   
   Set rowvalue = Cells.Find("*", Range("A1"), xlValues, xlPart, xlByRows, xlPrevious, False, False)
   r = rowvalue.Row
   
   
   
    Range(Cells(1, 1), Cells(r, c)).Select
   'Cells(10, 1) = r '4
   'Cells(10, 2) = c '7
   'Workbooks.Add
   Sheets.Add After:=Sheets(Sheets.Count) '-- õîòåë íîâûé ëèñò, ïåðåäóìàë
   ActiveSheet.Name = "GF"
    
   For n = 0 To (r - 2)
         For i = 1 To c 'ñòîëáöû
            
         Sheets("GF").Cells(i + n * c, 2) = Sheets("V").Cells(1, i)
         Sheets("GF").Cells(i + n * c, 1) = n + 1
               
         Next i
    Next n
    
     For n1 = 0 To (r - 2)
       
         
         For i = 1 To c 'ñòîëáöû
            
              Sheets("GF").Cells(i + n1 * c, 3) = Sheets("V").Cells(n1 + 2, i)
         
               
         Next i
       
    Next n1
    Sheets("V").Select
    ActiveSheet.Name = name1
       Sheets("GF").Select
    Sheets("GF").Move



помогите один к другому прицепить
24 янв 19, 09:41    [21792899]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить