0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 27
1

Не выводить последний столбец при объединении

29.07.2016, 20:20. Показов 708. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При объединении файлов в один, мне нужно чтоб последний столбец не выводился. В обоих файлах одинаковая структура, внутри по 13 часов. в 1 файле от 4-16 часов, а во 2 от 16-4 часов. Так вот при объединении мне нужно чтоб в результате получилось от 4:00-3:00(сутки). Т.к в обоих файлах есть 4 и 16 часов, 16 часов просто перезаписывается из 2 файла, а 4 час он считается последним и его ни как не заменишь. В итоге нужно его убрать вовсе, иначе получится 25 часов в сутках.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2016, 20:20
Ответы с готовыми решениями:

Процедура: переставить местами столбец с наибольшим количеством нулевых элементов и последний столбец
написать процедуру для заданного массива B(4, 5), переставить местами столбец с наибольшим...

Массив: переставить местами столбец с наибольшим количеством нулевых элементов и столбец последний по порядку
Друзья, помогите плиз сделать лабу в VBA) Написать процедуру. Для заданного массива В(4,5),...

При внесении данных в столбец "количество" выводить общую цену
при внесение данных в столбец количество появляется общая цена. нужно чтобы при этом на втором...

При объединении файлы csv
Нашел макрос для объединения файлов, при выполнении конечный файл пуст. в чем дело. пробывал даже...

3
6023 / 3217 / 719
Регистрация: 23.11.2010
Сообщений: 10,750
29.07.2016, 23:08 2
СергейПрог, вряд ли без файла с примером возможно предложить вариант решения
0
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 27
30.07.2016, 11:00  [ТС] 3
2 файла с исходными данными, и файл результат(vse)
Вложения
Тип файла: xlsx sektsii_100_1_nitka__19_7_2016_4_chas.xlsx (75.9 Кб, 3 просмотров)
Тип файла: xlsx sektsii_100_1_nitka__19_7_2016_16_chas.xlsx (76.0 Кб, 3 просмотров)
Тип файла: xlsx sektsii_100_1_nitka__19_7_2016_vse.xlsx (93.8 Кб, 3 просмотров)
0
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 27
30.07.2016, 11:16  [ТС] 4
Visual Basic
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
Sub AllReportMacro()
 
    Dim source4 As Workbook
    Dim source16 As Workbook
    Dim newBook As Workbook
    Dim dt
 
    Sheets("íàðóøåíèÿ ÍÒÐ").Select
    
    If InStr(1, ActiveWorkbook.FullName, "4_chas.") > 0 Then
        Set source4 = ActiveWorkbook
        fourChasNum = InStr(1, source4.FullName, "4_chas") - 1
        source16FileName = Left(source4.FullName, fourChasNum) + "16_chas.xlsx"
        Set source16 = Workbooks.Open(source16FileName, , False)
    Else
        If InStr(1, ActiveWorkbook.FullName, "16_chas.") > 0 Then
            Set source16 = ActiveWorkbook
            sixteenChasNum = InStr(1, source16.FullName, "16_chas") - 1
            source4FileName = Left(source16.FullName, sixteenChasNum) + "4_chas.xlsx"
            Set source4 = Workbooks.Open(source4FileName, , False)
        Else
            Exit Sub
        End If
    End If
    
    Windows(source16.Name).Activate
    source16.Sheets("íàðóøåíèÿ ÍÒÐ").Select
    
    ActiveSheet.Range("A:T").Copy
   
    Set newBook = Workbooks.Add
    Windows(newBook.Name).Activate
    ActiveWindow.Zoom = 80
    
    ActiveSheet.Paste
    
    UnMergeRange (ActiveSheet.Range("B1:P1"))
 
    ActiveSheet.Columns("P:P").EntireColumn.Select
    For i = 0 To 12
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Next i
    
    MergeRange (ActiveSheet.Range("B1:AC1"))
    
    ClearContentsRange (ActiveSheet.Range("A4:AG1000"))
    ClearContentsRange (ActiveSheet.Range("D2:AC2"))
    
    dt = TimeValue("04:00:00")
    ActiveSheet.Range("D2").Select
    For i = 0 To 24
        ActiveCell.Offset(0, i).FormulaR1C1 = FormatDateTime(dt, vbShortTime)
        dt = DateAdd("h", 1, dt)
    Next i
    
    ActiveSheet.Range("AC2").Value = "Îøèáîê"
    
    Dim oneCell
    Dim violations
    Set violations = CreateObject("Scripting.Dictionary")
    
    Windows(source4.Name).Activate
    source4.Sheets("íàðóøåíèÿ ÍÒÐ").Select
    ActiveSheet.Range("A4").Select
    Set oneCell = ActiveCell
    Do While oneCell.Value <> Empty
        violations.Item(oneCell.Value) = "source4"
        Set oneCell = oneCell.Offset(1, 0)
    Loop
    
    Windows(source16.Name).Activate
    source16.Sheets("íàðóøåíèÿ ÍÒÐ").Select
    ActiveSheet.Range("A4").Select
    Set oneCell = ActiveCell
    Do While oneCell <> Empty
        If violations.Item(oneCell.Value) = "source4" Then
            violations.Item(oneCell.Value) = "twice"
        Else
            violations.Item(oneCell.Value) = "source16"
        End If
        Set oneCell = oneCell.Offset(1, 0)
    Loop
     
    Windows(newBook.Name).Activate
    ActiveSheet.Range("A4").Select
    Dim newBookCurrentCell
    Set newBookCurrentCell = ActiveCell
    
    i = 0
    Dim source As Workbook
    
    For Each varKey In violations.Keys
        newBookCurrentCell.Value = varKey
        Select Case violations.Item(varKey)
            Case "source4"
                Set source = source4
            Case "source16"
                Set source = source16
            Case "twice"
                Set source = source4
         End Select
         Windows(source.Name).Activate
         Sheets("íàðóøåíèÿ ÍÒÐ").Select
         strNum = FindVal(ActiveSheet.Range("A:A"), varKey)
         source.Sheets("íàðóøåíèÿ ÍÒÐ").Range(source.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 1), source.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 3)).Copy
         
         Windows(newBook.Name).Activate
         newBookCurrentCell.Select
         ActiveSheet.Paste
         
         Windows(source.Name).Activate
         Sheets("íàðóøåíèÿ ÍÒÐ").Select
         source.Sheets("íàðóøåíèÿ ÍÒÐ").Range(source.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 19), source.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 20)).Copy
         
         Windows(newBook.Name).Activate
         newBookCurrentCell.Offset(0, 31).Select
         ActiveSheet.Paste
         
         Windows(source.Name).Activate
         Sheets("íàðóøåíèÿ ÍÒÐ").Select
         source.Sheets("íàðóøåíèÿ ÍÒÐ").Range(source.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 4), source.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 16)).Copy
         
         Windows(newBook.Name).Activate
         Select Case violations.Item(varKey)
            Case "source4"
                newBookCurrentCell.Offset(0, 15).Select
            Case "source16"
                newBookCurrentCell.Offset(0, 3).Select
            Case "twice"
                newBookCurrentCell.Offset(0, 15).Select
                ActiveSheet.Paste
                Windows(source16.Name).Activate
                Sheets("íàðóøåíèÿ ÍÒÐ").Select
                strNum = FindVal(ActiveSheet.Range("A:A"), varKey)
                source16.Sheets("íàðóøåíèÿ ÍÒÐ").Range(source16.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 4), source16.Sheets("íàðóøåíèÿ ÍÒÐ").Cells(strNum, 16)).Copy
                Windows(newBook.Name).Activate
                newBookCurrentCell.Offset(0, 3).Select
         End Select
         ActiveSheet.Paste
         Count = 0
         For Each cl In ActiveSheet.Range(newBook.Sheets(1).Cells(newBookCurrentCell.Row, 4), newBook.Sheets(1).Cells(newBookCurrentCell.Row, 28))
            If cl.Interior.TintAndShade <> 0 Then Count = Count + 1
         Next cl
         newBookCurrentCell.Offset(0, 28).Value = Count
         newBookCurrentCell.Offset(0, 28).NumberFormat = "0"
         Set newBookCurrentCell = newBookCurrentCell.Offset(1, 0)
    Next
    
    fourChasNum = InStr(1, source4.FullName, "4_chas") - 1
    destFullName = Left(source4.FullName, fourChasNum) + "vse.xlsx"
    
    ActiveWorkbook.SaveAs Filename:=destFullName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    
End Sub
 
Function FindVal(MyRange As Range, ByVal MyString As String) As Integer
    For Each cl In MyRange
        If cl.Value = MyString Then
            FindVal = cl.Row
            Exit Function
        End If
    Next cl
End Function
Sub UnMergeRange(MyRange As Range)
    With MyRange
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
    MyRange.UnMerge
End Sub
 
Sub MergeRange(MyRange As Range)
    With MyRange
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    MyRange.Merge
End Sub
 
Sub ClearContentsRange(MyRange As Range)
    With MyRange.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    MyRange.ClearContents
End Sub
0
30.07.2016, 11:16
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2016, 11:16
Помогаю со студенческими работами здесь

Error 438 при объединении ячеек
Добрый день! прошу помощи!! пишу такой код objdoc.range(objdoc.tables(n_d * 2 + 2).Cell(n_i + 3,...

Поменять в матрице местами последний столбец и столбец, содержащий минимальный элемент
Добрый вечер возникла проблема при написании программы, вот условие В данной действительной...

Двумерные массивы. Поменять местами последний столбец и столбец с минимальным элементом.
Дана матрица размера NxN.Поменять местами последний столбец и столбец с минимальным элементом.

Поменять местами столбец с минимальным элементом и последний столбец массива
В массиве необходимо найти номер столбца с минимальным элементом по модулю. Поменять местами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru