Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Сложить записи по сотрудникам для подсчета количества отработанных часов, консолидация времени по дате и по сотрудникам
 
Kalmar, огромное спасибо за помощь! Интересное решение у вас получилось, попробую помучиться))))!
Сложить записи по сотрудникам для подсчета количества отработанных часов, консолидация времени по дате и по сотрудникам
 
Дело в том, что входы могут быть лишними при учебной пожарной тревоге или некорректной работе пропуска! Будем наверно учет делать через SQL, так как в Excel для меня возникли сложности.
Брать нужно будет либо минимальный вход и максимальных выход, либо другие варианты попробовать....
Изменено: direget - 13.11.2018 14:45:35
Сложить записи по сотрудникам для подсчета количества отработанных часов, консолидация времени по дате и по сотрудникам
 
JayBhagavan, я же выше привел таблицу, в каком виде это должно быть... Т.е. необходимо из данных учетных систем получить отработанное время, но основная сложность заключается в том, что данные присылают построчно и количество входов не равно количеству выходов...Поэтому, как консолидировать выгрузку для подсчета отработанного времени я не знаю.(

Пример:

Сотрудник        01.10.2018   02.10.2018   03.10.2018

Иванов А.А.     5:30              9:00              8:45
Сложить записи по сотрудникам для подсчета количества отработанных часов, консолидация времени по дате и по сотрудникам
 
Юрий, проблема в том, что необходимо сложить записи по сотрудникам для подсчета количества отработанных часов...К сожалению, мои способы решить этот вопрос ни к чему не привели!(
Поэтому обращаюсь к вам за помощью! Может кто-то знает действенные способы решить эту задачу или может кто-то найдет в чем проблема?!

Буду признателен за помощь!
Сложить записи по сотрудникам для подсчета количества отработанных часов, консолидация времени по дате и по сотрудникам
 
Всем, привет!

Ну никак не получается схлопнуть данные по сотрудникам, чтобы подставить в шаблон макроса и посчитать рабочее время по каждому челу... Хелп ми плиз!

Источник дает данные построчно, поэтому пришлось переводить строки в столбцы для дальнейшей заливки в макрос:
Код
=ЕСЛИ(B2="Exit";0;ИНДЕКС($D$2:$D$14482;ПОИСКПОЗ("Entry";$B$2:$B$14482;0)))
=ЕСЛИ(B2="Entry";0;ИНДЕКС(D2:D14482;ПОИСКПОЗ("Entry";$B$2:$B$14482;0)))

В итоге у меня появились пустые/нулевые ячейки, в шаблоне их нет...Макрос отрабатывает только если записи не разряжены, как у меня...

Необходимо из примера во вложении получить таблицу в виде:
СотрудникПодразделениеДолжностьХарактер работы01.10.2018 Понедельник02.10.2018   Вторник03.10.2018 Среда04.10.2018   Четверг05.10.2018   Пятница
1:357:490:000:000:00
Пробовал схлопывать по суммеслимн:=СУММЕСЛИМН('Вход/выход'!$C$2:$C$14482;'Вход/выход'!$A$2:$A$14482;$A2;'Вход/выход'!$B$2:$B$14482;$B2);
Пробовал схлопывать по суммпроизв: =СУММПРОИЗВ(('Вход/выход'!$A$2:$A$14482=A2)*('Вход/выход'!$B$2:$B$14482=B2)*'Вход/выход''!$C$2:$C$14482);
Пробовал схлопывать через консолидацию данных

Но все попытки тщетны(((

Макрос для учета рабочего времени:
http://www.cyberforum.ru/vba/thread1847285.html#post9757031
Код
Sub test()
 
Set spis = ThisWorkbook.Worksheets(1)
Set otch = ThisWorkbook.Worksheets(2)
 
 
spis.Cells.Replace " (*)", ""
i = 4
 
On Error Resume Next Do While otch.Cells(i, 2) <> ""
    j = 3
    Do While otch.Cells(3, j) <> "ÑóììГ* Г§Г* Г*åäåëþ"
        r = ""
        
        r = spis.Range(spis.Cells(8, 1), spis.Cells(65536, 1)).Find(otch.Cells(3, j)).Row
        If r <> "" Then
            r2 = r
            If spis.Cells(r2 + 1, 1) Like "" And spis.Cells(r2 + 1, 4) <> "" Then spis.Cells(r2 + 1, 1) = spis.Cells(r2, 1)
            
            spis.Range("F" & r2).FormulaR1C1 = "=RC[-1]-RC[-2]"
            
            Do While spis.Cells(r2 + 1, 1) Like otch.Cells(3, j)
                r2 = r2 + 1
                If spis.Cells(r2 + 1, 1) Like "" And spis.Cells(r2 + 1, 4) <> "" Then spis.Cells(r2 + 1, 1) = spis.Cells(r2, 1)
                spis.Range("F" & r2).FormulaR1C1 = "=RC[-1]-RC[-2]"
            Loop
            sotr = ""
            sotr = spis.Range(spis.Cells(r - 1, 2), spis.Cells(r2, 2)).Find(what:=otch.Cells(i, 2)).Row
            Tot = sotr
            If sotr <> "" Then
                If spis.Cells(sotr + 1, 2) Like "" And spis.Cells(sotr + 1, 4) <> "" Then spis.Cells(sotr + 1, 2) = spis.Cells(sotr, 2)
                Do While spis.Cells(sotr + 1, 2) Like otch.Cells(i, 2)
                    sotr = sotr + 1
                    If spis.Cells(sotr + 1, 2) Like "" And spis.Cells(sotr + 1, 4) <> "" Then spis.Cells(sotr + 1, 2) = spis.Cells(sotr, 2)
                Loop
                spis.Range("G" & Tot).FormulaR1C1 = "=SUM(RC[-1]:R[" & sotr - Tot & "]C[-1])"
            End If
            otch.Cells(i, j) = spis.Cells(Tot, 7).Value
            otch.Range(otch.Cells(i, j), otch.Cells(i, j)).NumberFormat = "hh:mm"
            spis.Cells(Tot, 7) = ""
        End If
    j = j + 1
    Loop
    otch.Range(otch.Cells(i, j), otch.Cells(i, j)).NumberFormat = "d hh:mm"
    otch.Range(otch.Cells(i, j), otch.Cells(i, j)).FormulaR1C1 = "=SUM(RC[-1]:RC[-" & j - 3 & "])"
    
    s = Split(otch.Cells(i, j).Text, " ")
    s2 = Split(s(1), ":")
    
    otch.Range(otch.Cells(i, j), otch.Cells(i, j)).NumberFormat = "@"
    Tot = CStr(s(0) * 24 + s2(0)) & ":" & s2(1)
    otch.Range(otch.Cells(i, j), otch.Cells(i, j)).NumberFormat = "@"
    otch.Cells(i, j) = Tot
    
i = i + 1
Loop
 
spis.Columns(6).Delete
On Error GoTo 0
 
End Sub
Изменено: direget - 13.11.2018 10:27:20
Как выделить не активную ячейку на которую наведен курсор мыши?
 
Было бы здорово, если бы макрос очищал неактивные ячейки, на которые наведен курсор)))! На примере ластика в paint....)))
Фильтр в OLAP на VBA, необходима правка, загрузка списка на вход для удаления их из фильтра
 
Привет, всем!
Кто-нибудь может помочь с интересной задачей, которая может быть полезна многим?!
Есть 20 000 товарных позиций проданных за год, а мне нужны для статистики только 19 800...И так вопрос: Как можно отсеить 200 позиций с помощью фильтра через vba, чтобы не снимать галки вручную, а подать списком на вход эти позиции?
Есть примерный код, но который не отрабатывает должным образом...
Код
Private Function sOLAP_FilterByItemList(ByVal pvf As PivotField, _
   ByVal vItemsToBeVisible As Variant, _
   ByVal sItemPattern As String) As String
'--filters an OLAP pivotTable to display a list of items,
'    where some of the items might not exist
'--works by testing whether each pivotitem exists, then building an
'    array of existing items to be used with the VisibleItemsList property
'--requires Excel 2007 or later
'--Input Parameters:
'  pvf                pivotfield object to be filtered
'  vItemsToBeVisible  array of strings representing items to be visible
'  sItemPattern       string that has MDX pattern of pivotItem reference
'                     where the text "ThisItem" will be replaced by each
'                     item in vItemsToBeVisible to make pivotItem references.
'                     e.g.: "[tblSales].[product_name].&[ThisItem]"
    
 Dim lFilterItemCount As Long, lNdx As Long
 Dim vFilterArray As Variant
 Dim vSaveVisibleItemsList As Variant
 Dim sReturnMsg As String, sPivotItemName As String
  
 '--store existing visible items
 vSaveVisibleItemsList = pvf.VisibleItemsList
  
 If Not (IsArray(vItemsToBeVisible)) Then _
   vItemsToBeVisible = Array(vItemsToBeVisible)
 ReDim vFilterArray(1 To _
   UBound(vItemsToBeVisible) - LBound(vItemsToBeVisible) + 1)
 pvf.Parent.ManualUpdate = True
  
 '--check if pivotitem exists then build array of items that exist
 For lNdx = LBound(vItemsToBeVisible) To UBound(vItemsToBeVisible)
   '--create MDX format pivotItem reference by substituting item into pattern
   sPivotItemName = Replace(sItemPattern, "ThisItem", vItemsToBeVisible(lNdx))
    
   '--attempt to make specified item the only visible item
   On Error Resume Next
   pvf.VisibleItemsList = Array(sPivotItemName)
   On Error GoTo 0
    
   '--if item doesn't exist in field, this will be false
   If LCase$(sPivotItemName) = LCase$(pvf.VisibleItemsList(1)) Then
      lFilterItemCount = lFilterItemCount + 1
      vFilterArray(lFilterItemCount) = sPivotItemName
   End If
 Next lNdx
  
 '--if at least one existing item found, filter pivot using array
 If lFilterItemCount > 0 Then
   ReDim Preserve vFilterArray(1 To lFilterItemCount)
   pvf.VisibleItemsList = vFilterArray
 Else
   sReturnMsg = "No matching items found."
   pvf.VisibleItemsList = vSaveVisibleItemsList
 End If
 pvf.Parent.ManualUpdate = False
 sOLAP_FilterByItemList = sReturnMsg
End Function
Sub CallingExample()
'--пример, показывающий вызов функции
 Dim pvt As PivotTable
 Dim sErrMsg As String, sTemplate As String
 Dim vItemsToBeVisible As Variant
 Dim lLastRow As Long
 Dim sItemPattern As String
 On Error GoTo ErrProc
 With Application
   .EnableCancelKey = xlErrorHandler
   .ScreenUpdating = False
   .DisplayStatusBar = False
   .EnableEvents = False
 End With
    
 '--используем элементы фильтра из таблицы рабочих таблиц
 With Sheets("Фильтры")
   lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    
   vItemsToBeVisible = Application.Transpose( _
      .Range("A2:A" & lLastRow).Value)
 End With
 Set pvt = ActiveSheet.PivotTables("Сводная таблица1")
 '--вызываем функцию
 sErrMsg = sOLAP_FilterByItemList( _
   pvf:=pvt.PivotFields("[Сеть].[Код].[Код]"), _
   vItemsToBeVisible:=vItemsToBeVisible, _
   sItemPattern:="[Сеть].[Код].[Код]")
  
ExitProc:
 On Error Resume Next
 With Application
   .EnableEvents = True
   .DisplayStatusBar = True
   .ScreenUpdating = True
 End With
 If Len(sErrMsg) > 0 Then MsgBox sErrMsg
 Exit Sub
  
ErrProc:
 sErrMsg = Err.Number & " - " & Err.Description
 Resume ExitProc
End Sub
Изменено: direget - 09.10.2018 15:36:50
Обработка ошибок на VBA (отсутствие фильтра для выгрузки)
 
Всем, привет!

Подскажите, кто знает как решить вопрос обработки ошибок при отсутствии нужного фильтра у юзеров.
Код
Dim Head_TT As Integer
    Dim k As Integer
    For k = 1 To ActiveSheet.PivotTables("Сводная таблица1").CubeFields.Count
    If ActiveSheet.PivotTables("Сводная таблица1").CubeFields(k).Value = "[Сеть].[Магазины]" Then
    Head_TT = ActiveSheet.PivotTables("Сводная таблица1").CubeFields(k).Position
    End If
    Next
Т.е. на одну вкладку подается список, на другой pivot tables, в фильтры которой не добавлено нужное поле.
Изменено: direget - 06.10.2018 13:02:14
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Отдельно огромное спасибо за поддержку, Nordheim!
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
И чтобы сохранял файлы при нарезке в формате .xls
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Всем спасибо за помощь! Коллега помог разобраться...не хватало всего лишь Activesheet. перед Range!

Незаменимая вещь!!!!!!!!!!!!!!

А кто знает, как дописывать "...нарезка" к каждому файлу?!
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Выдает ошибку на одном и том же месте
Range(targetSheet.Cells(RowFrom, 1), targetSheet.Cells(RowTo, 1)).EntireRow.Delete

Ошибка: Method 'Range' of object '_Worksheet' failed
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Nordheim, к сожалению, аналогично(!
Падает на
Строка 89 Set rngRange = Range(targetSheet.Cells(RowFrom, 1), targetSheet.Cells(RowTo, 1)).EntireRow
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Nordheim, может я коряво дописал, но уже не знаю в чем проблема?
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Nordheim, я правильно вставил строки, о которых вы говорили? или быть может что-то дописать нужно к ним?!
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Nordheim, спасибо за помощь!
Книгу использую с поддержкой макросов...
Выдает теперь 400 ошибку...( Вы макросы запускаете отдельно, или через ALT+F8?
Вставлены строки, о которых вы говорили, но результата нет...
Вы используете на той таблице, которую я вам прислал или на другой?!
Код
Public Sub SplitToFiles()
' MACRO SplitToFiles
' Last update: 2012-03-04
' Author: mtone
' Version 1.1
' Description:
' Loops through a specified column, and split each distinct values into a separate file by making a copy and deleting rows below and above
'
' Note: Values in the column should be unique or sorted.
'
' The following cells are ignored when delimiting sections:
' - blank cells, or containing spaces only
' - same value repeated
' - cells containing "total"
'
' Files are saved in a "Split" subfolder from the location of the source workbook, and named after the section name.
Dim osh As Worksheet ' Original sheet
Dim iRow As Long ' Cursors
Dim iCol As Long
Dim iFirstRow As Long ' Constant
Dim iTotalRows As Long ' Constant
Dim iStartRow As Long ' Section delimiters
Dim iStopRow As Long
Dim sSectionName As String ' Section name (and filename)
Dim rCell As Range ' current cell
Dim owb As Workbook ' Original workbook
Dim sFilePath As String ' Constant
Dim iCount As Integer ' # of documents created
iCol = Application.InputBox("Enter the column number used for splitting", "Select column", 2, , , , , 1)
iRow = Application.InputBox("Enter the starting row number (to skip header)", "Select row", 5, , , , , 1)
iFirstRow = iRow
Set osh = Application.ActiveSheet
Set owb = Application.ActiveWorkbook
iTotalRows = osh.UsedRange.Rows.Count
sFilePath = Application.ActiveWorkbook.Path
If Dir(sFilePath + "\Split", vbDirectory) = "" Then
    MkDir sFilePath + "\Split"
End If
'Turn Off Screen Updating  Events
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Do
    ' Get cell at cursor
    Set rCell = osh.Cells(iRow, iCol)
    sCell = Replace(rCell.Text, " ", "")
    If sCell = "" Or (rCell.Text = sSectionName And iStartRow <> 0) Or InStr(1, rCell.Text, "total", vbTextCompare) <> 0 Then
        ' Skip condition met
    Else
        ' Found new section
        If iStartRow = 0 Then
            ' StartRow delimiter not set, meaning beginning a new section
            sSectionName = rCell.Text
            iStartRow = iRow
        Else
            ' StartRow delimiter set, meaning we reached the end of a section
            iStopRow = iRow - 1
            ' Pass variables to a separate sub to create and save the new worksheet
            CopySheet osh, iFirstRow, iStartRow, iStopRow, iTotalRows, sFilePath, sSectionName, owb.fileFormat
            iCount = iCount + 1
            ' Reset section delimiters
            iStartRow = 0
            iStopRow = 0
            ' Ready to continue loop
            iRow = iRow - 1
        End If
    End If
    ' Continue until last row is reached
    If iRow < iTotalRows Then
            iRow = iRow + 1
    Else
        ' Finished. Save the last section
        iStopRow = iRow
        CopySheet osh, iFirstRow, iStartRow, iStopRow, iTotalRows, sFilePath, sSectionName, owb.fileFormat
        iCount = iCount + 1
        ' Exit
        Exit Do
    End If
Loop
'Turn On Screen Updating  Events
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
MsgBox Str(iCount) + " documents saved in " + sFilePath

End Sub
Public Sub DeleteRows(targetSheet As Worksheet, RowFrom As Long, RowTo As Long)
Dim rngRange As Range
Set rngRange = Range(targetSheet.Cells(RowFrom, 1), targetSheet.Cells(RowTo, 1)).EntireRow
rngRange.Select
rngRange.Delete
End Sub

Public Sub CopySheet(osh As Worksheet, iFirstRow As Long, iStartRow As Long, iStopRow As Long, iTotalRows As Long, sFilePath As String, sSectionName As String, fileFormat As XlFileFormat)
     Dim ash As Worksheet ' Copied sheet
     Dim awb As Workbook ' New workbook
     ' Copy book
     osh.Copy
     Set ash = Application.ActiveSheet
     ' Delete Rows after section
     If iTotalRows > iStopRow Then
         DeleteRows ash, iStopRow + 1, iTotalRows
     End If
     ' Delete Rows before section
     If iStartRow > iFirstRow Then
         DeleteRows ash, iFirstRow, iStartRow - 1
     End If
     ' Select left-topmost cell
     ash.Cells(1, 1).Select
     ' Clean up a few characters to prevent invalid filename
     sSectionName = Replace(sSectionName, "/", " ")
     sSectionName = Replace(sSectionName, "\", " ")
     sSectionName = Replace(sSectionName, ":", " ")
     sSectionName = Replace(sSectionName, "=", " ")
     sSectionName = Replace(sSectionName, "*", " ")
     sSectionName = Replace(sSectionName, ".", " ")
     sSectionName = Replace(sSectionName, "?", " ")
     ' Save in same format as original workbook
     ash.SaveAs sFilePath + "\Split\" + sSectionName, fileFormat
     ' Close
     Set awb = ash.Parent
     awb.Close SaveChanges:=False
End Sub

Изменено: direget - 27.09.2018 10:13:04
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Юрий М, 1->2->3 на 1 ошибка 1004, на 2 и 3 - Method Range of object _Worksheet failed
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
_Igor_61, ALT+F8, запускаю все вместе, так как они должны отработать в цикле.
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Цитата
_Igor_61 написал:
Ну да, не подсвечивает, потому что в этом файле ваще ни одного макроса нет    
Я же говорю, что не силен)! Но можно же отработать его макрос выше)))!
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Вероятно ошибка возникает из-за неверного синтаксиса в строках с 85 по 89. В VBA я не силен, поэтому не могу определить точно.
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Файл ниже.. Но строку не подсвечивает...Поэтому не могу определить, где фол(
Разбиение таблицы с отфильтровкой нужных полей и удалением ненужных
 
Всем привет!!!!!! Столкнулся с проблемой отработки макроса, который нашел в сети. Аналогов не нашел, поэтому прошу помочь его реанимировать...

Возвращает ошибку:
Method Range of object _Worksheet failed

Макрос:
Код
Public Sub SplitToFiles()
' MACRO SplitToFiles
' Last update: 2012-03-04
' Author: mtone
' Version 1.1
' Description:
' Loops through a specified column, and split each distinct values into a separate file by making a copy and deleting rows below and above
'
' Note: Values in the column should be unique or sorted.
'
' The following cells are ignored when delimiting sections:
' - blank cells, or containing spaces only
' - same value repeated
' - cells containing "total"
'
' Files are saved in a "Split" subfolder from the location of the source workbook, and named after the section name.
Dim osh As Worksheet ' Original sheet
Dim iRow As Long ' Cursors
Dim iCol As Long
Dim iFirstRow As Long ' Constant
Dim iTotalRows As Long ' Constant
Dim iStartRow As Long ' Section delimiters
Dim iStopRow As Long
Dim sSectionName As String ' Section name (and filename)
Dim rCell As Range ' current cell
Dim owb As Workbook ' Original workbook
Dim sFilePath As String ' Constant
Dim iCount As Integer ' # of documents created
iCol = Application.InputBox("Enter the column number used for splitting", "Select column", 2, , , , , 1)
iRow = Application.InputBox("Enter the starting row number (to skip header)", "Select row", 5, , , , , 1)
iFirstRow = iRow
Set osh = Application.ActiveSheet
Set owb = Application.ActiveWorkbook
iTotalRows = osh.UsedRange.Rows.Count
sFilePath = Application.ActiveWorkbook.Path
If Dir(sFilePath + "\Split", vbDirectory) = "" Then
    MkDir sFilePath + "\Split"
End If
'Turn Off Screen Updating  Events
Application.EnableEvents = False
Application.ScreenUpdating = False
Do
    ' Get cell at cursor
    Set rCell = osh.Cells(iRow, iCol)
    sCell = Replace(rCell.Text, " ", "")
    If sCell = "" Or (rCell.Text = sSectionName And iStartRow <> 0) Or InStr(1, rCell.Text, "total", vbTextCompare) <> 0 Then
        ' Skip condition met
    Else
        ' Found new section
        If iStartRow = 0 Then
            ' StartRow delimiter not set, meaning beginning a new section
            sSectionName = rCell.Text
            iStartRow = iRow
        Else
            ' StartRow delimiter set, meaning we reached the end of a section
            iStopRow = iRow - 1
            ' Pass variables to a separate sub to create and save the new worksheet
            CopySheet osh, iFirstRow, iStartRow, iStopRow, iTotalRows, sFilePath, sSectionName, owb.fileFormat
            iCount = iCount + 1
            ' Reset section delimiters
            iStartRow = 0
            iStopRow = 0
            ' Ready to continue loop
            iRow = iRow - 1
        End If
    End If
    ' Continue until last row is reached
    If iRow < iTotalRows Then
            iRow = iRow + 1
    Else
        ' Finished. Save the last section
        iStopRow = iRow
        CopySheet osh, iFirstRow, iStartRow, iStopRow, iTotalRows, sFilePath, sSectionName, owb.fileFormat
        iCount = iCount + 1
        ' Exit
        Exit Do
    End If
Loop
'Turn On Screen Updating  Events
Application.ScreenUpdating = True
Application.EnableEvents = True
MsgBox Str(iCount) + " documents saved in " + sFilePath

End Sub
Public Sub DeleteRows(targetSheet As Worksheet, RowFrom As Long, RowTo As Long)
Dim rngRange As Range
Set rngRange = Range(targetSheet.Cells(RowFrom, 1), targetSheet.Cells(RowTo, 1)).EntireRow
rngRange.Select
rngRange.Delete
End Sub

Public Sub CopySheet(osh As Worksheet, iFirstRow As Long, iStartRow As Long, iStopRow As Long, iTotalRows As Long, sFilePath As String, sSectionName As String, fileFormat As XlFileFormat)
     Dim ash As Worksheet ' Copied sheet
     Dim awb As Workbook ' New workbook
     ' Copy book
     osh.Copy
     Set ash = Application.ActiveSheet
     ' Delete Rows after section
     If iTotalRows > iStopRow Then
         DeleteRows ash, iStopRow + 1, iTotalRows
     End If
     ' Delete Rows before section
     If iStartRow > iFirstRow Then
         DeleteRows ash, iFirstRow, iStartRow - 1
     End If
     ' Select left-topmost cell
     ash.Cells(1, 1).Select
     ' Clean up a few characters to prevent invalid filename
     sSectionName = Replace(sSectionName, "/", " ")
     sSectionName = Replace(sSectionName, "\", " ")
     sSectionName = Replace(sSectionName, ":", " ")
     sSectionName = Replace(sSectionName, "=", " ")
     sSectionName = Replace(sSectionName, "*", " ")
     sSectionName = Replace(sSectionName, ".", " ")
     sSectionName = Replace(sSectionName, "?", " ")
     ' Save in same format as original workbook
     ash.SaveAs sFilePath + "\Split\" + sSectionName, fileFormat
     ' Close
     Set awb = ash.Parent
     awb.Close SaveChanges:=False
End Sub
Изменено: direget - 27.09.2018 20:23:28
Перевод текста в дату, Перевод текста в измерение
 
Как я понимаю это скорее всего можно решить через VBA, но каким образом не понимаю...
Перевод текста в дату, Перевод текста в измерение
 
Спасибо за ответ, БМВ! Неправильно описал суть процесса..... Суть в следующем, необходимо из режима работы записанного в одной ячейке в виде пн-пт, 9-18, сб-вс выходной получить развернутую таблицу для измерения времени в дальнейшем и должно это выглядеть так:
График работы Смена ПН ВТ СР ЧТ ПТ СБВС
пн-пт 9-18, сб, вс выходной Начало 9:00 9:00 9:00 9:00 9:00 вых вых
Окончание 18:00  18:00  18:00  18:00 18:00 вых вых
Перевод текста в дату, Перевод текста в измерение
 
Привет, всем!
Подскажите, пожалуйста, каким образом можно перевести текст пн.-пт. 9-18, сб-вс выходной в измерение времени, допустим пн. 9:00:00 - 18:00:00, с помощью макроса. Объектов много, т.к. вручную сделать достаточно проблематично. Цель использование графика работы, как измерения.
Изменено: direget - 07.08.2018 16:10:31
Страницы: 1
Наверх