powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / транспонирование
5 сообщений из 5, страница 1 из 1
транспонирование
    #39759732
saxarock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи знатоки,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
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 не силен, поэтому прошу тупо сделать рабочий код.
...
Рейтинг: 0 / 0
транспонирование
    #39759744
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxarock,

В книге один лист, содержимое которого нужно транспонировать ?
...
Рейтинг: 0 / 0
транспонирование
    #39759746
saxarock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-duke,

Да.
...
Рейтинг: 0 / 0
транспонирование
    #39759981
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
saxarock,

objFSO зачем? Это только часть кода? Вот часть с транспонированием
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
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
...
Рейтинг: 0 / 0
транспонирование
    #39763980
saxarock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
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)




Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
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




помогите один к другому прицепить
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / транспонирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]