Ексель

Неработающие компьютеры и все, что с ними связано.
Ответить
trenkin
Родился
Сообщения: 12
Зарегистрирован: Вт ноя 03, 2015 04:33:50

Ексель

Сообщение trenkin »

Ребят... Подскажите тответ на решение такой проблемы.. Почему таблица Ексель пуста, хотя имеет размер... Работал все нормально ранее... Теперь открываю.. Она вся пустая.. Хотя размер её 7 мб я вижу. ЧТо это может быть???
Аватара пользователя
Dick
Собутыльник Кота
Сообщения: 2566
Зарегистрирован: Вс ноя 01, 2009 00:18:20
Откуда: St.Petersburg

Re: Ексель

Сообщение Dick »

Скрытые листы/строки?
Аватара пользователя
mishinmaster
Грызет канифоль
Сообщения: 294
Зарегистрирован: Пн дек 01, 2014 19:48:17

Re: Ексель

Сообщение mishinmaster »

1. посмотреть внизу, слева, почти в самом углу чтобы был открыт именно тот лист, который надо. по умолчанию "лист1", могли создать пустой, и файл открывается на нем.
2. Нажимаем на треугольник выше обозначения номеров строк, чтобы "посерел" (или "засветился") весь лист, потом на вкладке "главная" нажимаем "формат" - "скрыть или отобразить" - "отобразить строки".
3. То же самое - последняя команда - "отобразить столбцы".
Если документ что- то весит. то должно помочь.
Триод
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Сб дек 08, 2012 16:40:40

Re: Ексель

Сообщение Триод »

Проверь свойство

Код: Выделить всё

Cells.SpecialCells(xlCellTypeLastCell).Row

для всех листов. Какое у них значение?

И ещё. Выполни в "большом" файле вот такой код:

Код: Выделить всё

Option Explicit
Option Base 1

Sub ReduceSize() ' фитнесс для разбухших файлов
'----------
' Procedure : ReduceSize
' Author    : KuklP + Alex_ST ("полировка" и комментарии)
' URL       : http://www.excelworld.ru/forum/3-57-1
' Date      : 10.09.2010 + 01.02.2011
' Purpose   : фитнесс для разбухших файлов
'----------

    Dim LastRow&, LastColumn%
    Dim arrRowsHeight!(), arrColumnsWidth!()
    Dim oldWbName$, newWbName$
    Dim WbPath$, iShtName$
    Dim iSht As Worksheet
    Dim newWb As Workbook
    Dim i%, n%
    WbPath = ActiveWorkbook.Path ' запомним путь к книге
    oldWbName = ActiveWorkbook.Name ' запомним имя старой книги
    Set newWb = Workbooks.Add ' создадим новую книгу (она сразу станет ActiveWorkbook)
    ActiveWorkbook.SaveAs WbPath & "\" & "(NEW) " & oldWbName 'сохраним новую книгу рядом со старой с префиксом к имени "(NEW) "
    newWbName = ActiveWorkbook.Name ' запомним имя новой книги
    i = 1 ' начинаем с первой страницы новой книги
    For Each iSht In ThisWorkbook.Sheets ' цикл по всем листам старой(ThisWorkbook) книги
        iSht.Activate
        iShtName = ActiveSheet.Name
        LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row ' последняя строка на листе, содержащая хоть какие-нибудь значения
        LastColumn = Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column ' последний столбец на листе, содержащий хоть какие-нибудь значения
        ReDim arrRowsHeight(LastRow)
        ReDim arrColumnsWidth(LastColumn)
        For n = 1 To LastRow ' запомним высоты строк в массив
            arrRowsHeight(n) = Rows(n).RowHeight
        Next n
        For n = 1 To LastColumn ' запомним ширины столбцов в массив
            arrColumnsWidth(n) = Columns(n).ColumnWidth
        Next n
        Application.CutCopyMode = False
        Range(Cells(1, 1), Cells(LastRow, LastColumn)).Copy ' копируем только диапазон, содержащий данные
        With newWb
            If .Sheets.Count < i Then .Sheets.Add after:=.Sheets(.Sheets.Count)
            .Sheets(i).Name = iShtName
            .Sheets(i).Paste ' копируем на страницы новой книги диапазон, содержащий данные
            Application.CutCopyMode = False
            For n = 1 To LastRow ' восстановим высоты строк
                .Sheets(i).Rows(n).RowHeight = arrRowsHeight(n)
            Next n
            For n = 1 To LastColumn ' восстановим ширины столбцов
                .Sheets(i).Columns(n).ColumnWidth = arrColumnsWidth(n)
            Next n
        End With
        i = i + 1 ' продолжим на следующей странице новой книги
    Next
    Application.DisplayAlerts = False
    Call ExportAllStdModules(Workbooks(newWbName)) ' скопировать все компоненты VBA в новую книгу
    Workbooks(newWbName).Save ' сохраним новую книгу
    Workbooks(oldWbName).Close SaveChanges:=False ' закроем старую книгу без сохранения изменений
    Application.DisplayAlerts = True
End Sub

Private Sub ExportAllStdModules(wb As Workbook) ' скопировать все компоненты VBA в новую книгу
    Dim iTempPath$, iModuleName$
    Dim iVBComponent
    With Application
        .ScreenUpdating = False
        iTempPath = .DefaultFilePath & .PathSeparator
        With wb.VBProject.VBComponents
            For Each iVBComponent In ThisWorkbook.VBProject.VBComponents
                If iVBComponent.Type = 1 Then
                    iModuleName$ = iTempPath$ & iVBComponent.Name
                    iVBComponent.Export Filename:=iModuleName$
                    .Import Filename:=iModuleName$
                    Kill PathName:=iModuleName$
                End If
            Next
        End With
        .ScreenUpdating = True
    End With
End Sub

Будет создан такой-же файл, но меньшее размера.
Код не мой
prohovec
Родился
Сообщения: 8
Зарегистрирован: Вт окт 13, 2015 10:22:57

Re: Ексель

Сообщение prohovec »

[quote="trenkin"]Ребят... Подскажите тответ на решение такой проблемы.. Почему таблица Ексель пуста, хотя имеет размер... Работал все нормально ранее... Теперь открываю.. Она вся пустая.. Хотя размер её 7 мб я вижу. ЧТо это может быть???[/quote]
Посмотри в реестре. Посмотри, что у тебя стоит в 2 местах:
- HKLM\Software\Classes\.xls , параметр "(по умолчанию)". Там, скорее всего, будет "Excel.Sheet.8", но мало ли что.
- HKLM\Software\Classes\Excel.Sheet.8\shell\Open\command (вместо Excel.Sheet.8 - то, что записано в предыдущем ключе) - в параметре "(по умолчанию)" должен быть прописан полный путь к файлу excel.exe с параметром командной строки /e .
Можно посмотреть ссылки в реестре на другие классы Excel, где есть вложенные ключи shell\Open\command, и также прописать путь к excel.exe.
Могу еще посоветовать вот эту программу http://www.erepairexcel.com/ru/ она отлично восстанавливает таблицы
Саш_а
Родился
Сообщения: 4
Зарегистрирован: Пн фев 01, 2016 16:48:26
Откуда: Россия, Спб
Контактная информация:

Re: Ексель

Сообщение Саш_а »

Страницу может перещелкнули(вкладки снизу)
А еще лучше восстановите предыдущую версию документа
Триод
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Сб дек 08, 2012 16:40:40

Re: Ексель

Сообщение Триод »

Саш_а писал(а):Страницу может перещелкнули(вкладки снизу)

Какая связь с проблемой автора?
MkP
Родился
Сообщения: 4
Зарегистрирован: Вс янв 03, 2016 18:56:22

Re: Ексель

Сообщение MkP »

Может какие скрытую инфу хранить в себе например макрос или еще что то
Ответить

Вернуться в «Ничего не работает»