powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB + Excel
2 сообщений из 2, страница 1 из 1
VB + Excel
    #37886530
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Уважаемый форум!

Я только начинаю разбираться с VB (Visual Studio 2010), поэтому просьба не пинать сильно.
Задача: Необходимо перелопатить несколько Эксель-файлов и перенести данные в другие Эксель-файлы. Не спрашивайте, зачем - так надо. Вопрос в другом. Слепил код:
Код: 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.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
Imports Microsoft.Office.Interop
Module Module1
    Dim xl As Excel.Application, xbk As Excel.Workbook, xsh As Excel.Worksheet, fl As String, mnt As String, cntry As String
    Dim xl_read As Excel.Application, xbk_read As Excel.Workbook, xsh_read As Excel.Worksheet, mnt_no As String, yhr As String
    Sub Main()
        yhr = InputBox("Insert the year in format XXXX for which the reports are being loaded", "Year input", "")
        If yhr = "" Or yhr < 2000 Then
            MsgBox("Your input is not valid!", vbCritical, "Error")
            Exit Sub
        End If
        fl = Dir("*.xls")
        Do
            If InStr(fl, "Operating Cost", vbTextCompare) > 0 Then
                xl = CreateObject("Excel.application")
                xl_read = CreateObject("Excel.application")
                xbk_read = xl_read.Workbooks.Open(fl)
                xsh_read = xbk_read.ActiveSheet
                mnt = Right(xsh_read.Cells(5, 2).Value, Len(xsh_read.Cells(5, 2).Value) - 8)
                Select Case mnt
                    Case "January"
                        mnt_no = "01"
                    Case "February"
                        mnt_no = "02"
                    Case "March"
                        mnt_no = "03"
                    Case "April"
                        mnt_no = "04"
                    Case "May"
                        mnt_no = "05"
                    Case "June"
                        mnt_no = "06"
                    Case "July"
                        mnt_no = "07"
                    Case "August"
                        mnt_no = "08"
                    Case "September"
                        mnt_no = "09"
                    Case "October"
                        mnt_no = "10"
                    Case "November"
                        mnt_no = "11"
                    Case "December"
                        mnt_no = "12"
                End Select
                cntry = Right(xsh_read.Cells(3, 2).Value, Len(xsh_read.Cells(3, 2).Value) - 8)
                xbk = xl.Workbooks.Open("FI_data_Layout_for_upload.xls")
                xbk.SaveAs("FI_data_Layout_for_upload_" & cntry & ".xls")
                xbk.Close()
                xbk = xl.Workbooks.Open("FI_data_Layout_for_upload_" & cntry & ".xls")
                xsh = xbk.Worksheets(1)

                xsh.Range("B2", "B49").Value = mnt_no & yhr
                xsh.Range("C2", "C49").Value = cntry

                xsh.Cells(2, 6).Value = xsh_read.Range("D10").Value <= разные варианты внесения 
                xsh.Cells(3, 6).Value = xsh_read.Range("D11").Value
                xsh.Cells(4, 6).Value = xsh_read.Range("D12").Value
                xsh.Cells(5, 6).Value = xsh_read.Range("D13").Value
                xsh.Range("G6").Value = xsh_read.Range("D14").Value <= разные варианты внесения
                xsh.Range("G7").Value = xsh_read.Range("D15").Value
                xsh.Range("F8").Value = xsh_read.Range("D16").Value
                xsh.Range("F9").Value = xsh_read.Range("D17").Value
                xsh.Range("F10").Value = xsh_read.Range("D18").Value
                xsh.Range("F11").Value = xsh_read.Range("D21").Value
                xsh.Range("G12").Value = xsh_read.Range("D22").Value
                xsh.Range("G13").Value = xsh_read.Range("D23").Value
                xsh.Range("F14").Value = xsh_read.Range("D24").Value
                xsh.Range("G15").Value = xsh_read.Range("D25").Value
                xsh.Range("G16").Value = xsh_read.Range("D26").Value
                xsh.Range("F17").Value = xsh_read.Range("D27").Value
                xsh.Range("F18").Value = xsh_read.Range("D28").Value
                xsh.Range("F19").Value = xsh_read.Range("D29").Value
                xsh.Range("F20").Value = xsh_read.Range("D32").Value
                xsh.Range("F21").Value = xsh_read.Range("D33").Value
                xsh.Range("F22").Value = xsh_read.Range("D36").Value
                xsh.Range("F23").Value = xsh_read.Range("D37").Value
                xsh.Range("F24").Value = xsh_read.Range("D42").Value
                xsh.Range("F25").Value = xsh_read.Range("D43").Value
                xsh.Range("F26").Value = xsh_read.Range("H10").Value
                xsh.Range("G27").Value = xsh_read.Range("H11").Value
                xsh.Range("G28").Value = xsh_read.Range("H12").Value
                xsh.Range("F29").Value = xsh_read.Range("H13").Value
                xsh.Range("G30").Value = xsh_read.Range("H14").Value
                xsh.Range("G31").Value = xsh_read.Range("H15").Value
                xsh.Range("F32").Value = xsh_read.Range("H16").Value
                xsh.Range("F33").Value = xsh_read.Range("H17").Value
                xsh.Range("F34").Value = xsh_read.Range("H18").Value
                xsh.Range("F35").Value = xsh_read.Range("H21").Value
                xsh.Range("G36").Value = xsh_read.Range("H22").Value
                xsh.Range("G37").Value = xsh_read.Range("H23").Value
                xsh.Range("F38").Value = xsh_read.Range("H24").Value
                xsh.Range("G39").Value = xsh_read.Range("H25").Value
                xsh.Range("G40").Value = xsh_read.Range("H26").Value
                xsh.Range("F41").Value = xsh_read.Range("H27").Value
                xsh.Range("F42").Value = xsh_read.Range("H28").Value
                xsh.Range("F43").Value = xsh_read.Range("H29").Value
                xsh.Range("F44").Value = xsh_read.Range("H32").Value
                xsh.Range("F45").Value = xsh_read.Range("H33").Value
                xsh.Range("F46").Value = xsh_read.Range("H36").Value
                xsh.Range("F47").Value = xsh_read.Range("H37").Value
                xsh.Range("F48").Value = xsh_read.Range("H42").Value
                xsh.Range("F49").Value = xsh_read.Range("H43").Value

                xbk.Close(True)
                xl.Quit()
                xbk_read.Close(False)
                xl_read.Quit()
                xsh = Nothing
                xsh_read = Nothing
                xbk = Nothing
                xbk_read = Nothing
                xl_read = Nothing
                xl = Nothing
            End If
            fl = Dir()
        Loop Until fl = ""
        MsgBox("Finished!")
    End Sub

End Module



Но почему-то не работает внесение данных в целевой файл. Подскажите, плиз, че не так и куда копать. Если есть ссылки, где ВНЯТНО почитать про работу с файлами Эксель, ВКЛЮЧАЯ описание того, КАКИЕ БИБЛИОТЕКИ необходимо подключить для нормальной работы - буду очень благодарен. Спасибо заранее!
...
Рейтинг: 0 / 0
VB + Excel
    #37886670
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Спасибо, разобрался!
_!)№(%*:?*! -ский заказчик не предупредил, что есть скрытые листы в исходном и целевом файле. Убил бы нахрен.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB + Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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