Господа, имеется файл, который благополучно открывает DOC файлы. Со скриптом ранее помогли тут (ни разу не программист) Теперь появилась потребность в открытии файла XLSX, но пишет "Файл поврежден" По содержанию скрипта понимаю, что он действительно "написан" для открытия Ворд документа.
Спасибо )
Господа, имеется файл, который благополучно открывает DOC файлы. Со скриптом ранее помогли тут (ни разу не программист) Теперь появилась потребность в открытии файла XLSX, но пишет "Файл поврежден" По содержанию скрипта понимаю, что он действительно "написан" для открытия Ворд документа.
вот пример (к сожалению пост переносился из другого подфорума, и приложение видимо не сохранилось)
Сам скрипт:
[vba]
Код
Private Sub pp3_Click()
If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ActiveCell.EntireRow.Copy Sheets("Áóôåð").Rows(2) cFileD = ActiveWorkbook.Path & "\îòêðûòü_doc_ðàáîòàåò.doc" Set WD = CreateObject("Word.Application") WD.Visible = True WD.Documents.Open Filename:=cFileD Set WD = Nothing End Sub
Private Sub CommandButton1_Click() If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ActiveCell.EntireRow.Copy Sheets("Áóôåð").Rows(2) cFileD = ActiveWorkbook.Path & "\à_êàê_îòêðûòü.xlsx" Set WD = CreateObject("Word.Application") WD.Visible = True WD.Documents.Open Filename:=cFileD Set WD = Nothing End Sub
[/vba]
Верхний работает нормально. Не работает Нижний который пытается открыть xls. Надеюсь никого не запутал [moder]1. Пользуйтесь спецтегами оформления. Для кода - кнопка #, полный список - ссылка на него в Правилах форума. И при копировании переходите на русский язык в приложении, откуда копируете. Тогда не будет кракозябрин.
вот пример (к сожалению пост переносился из другого подфорума, и приложение видимо не сохранилось)
Сам скрипт:
[vba]
Код
Private Sub pp3_Click()
If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ActiveCell.EntireRow.Copy Sheets("Áóôåð").Rows(2) cFileD = ActiveWorkbook.Path & "\îòêðûòü_doc_ðàáîòàåò.doc" Set WD = CreateObject("Word.Application") WD.Visible = True WD.Documents.Open Filename:=cFileD Set WD = Nothing End Sub
Private Sub CommandButton1_Click() If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ActiveCell.EntireRow.Copy Sheets("Áóôåð").Rows(2) cFileD = ActiveWorkbook.Path & "\à_êàê_îòêðûòü.xlsx" Set WD = CreateObject("Word.Application") WD.Visible = True WD.Documents.Open Filename:=cFileD Set WD = Nothing End Sub
[/vba]
Верхний работает нормально. Не работает Нижний который пытается открыть xls. Надеюсь никого не запутал [moder]1. Пользуйтесь спецтегами оформления. Для кода - кнопка #, полный список - ссылка на него в Правилах форума. И при копировании переходите на русский язык в приложении, откуда копируете. Тогда не будет кракозябрин.ComiC
Private Sub CommandButton1_Click() Dim cFileD$ ' If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ' ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2) cFileD = ActiveWorkbook.Path & "\а_как_открыть.xlsx" Добавил: If Dir(cFileD) = "" Then Exit Sub Workbooks.Open Filename:=cFileD Убрал: ' Set WD = CreateObject("Word.Application") ' WD.Visible = True ' WD.Documents.Open Filename:=cFileD ' Set WD = Nothing End Sub
[/vba]
Вот [vba]
Код
Private Sub CommandButton1_Click() Dim cFileD$ ' If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ' ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2) cFileD = ActiveWorkbook.Path & "\а_как_открыть.xlsx" Добавил: If Dir(cFileD) = "" Then Exit Sub Workbooks.Open Filename:=cFileD Убрал: ' Set WD = CreateObject("Word.Application") ' WD.Visible = True ' WD.Documents.Open Filename:=cFileD ' Set WD = Nothing End Sub
Private Sub CommandButton1_Click() If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2) cFileX = ActiveWorkbook.Path & "\а_как_открыть.xlsx" Set WB = CreateObject("Excel.Application") WB.Visible = True WB.Workbooks.Open Filename:=cFileX Set WB = Nothing End Sub
[/vba]
Думаю, можно было бы провести аналогии: [vba]
Код
Private Sub CommandButton1_Click() If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2) cFileX = ActiveWorkbook.Path & "\а_как_открыть.xlsx" Set WB = CreateObject("Excel.Application") WB.Visible = True WB.Workbooks.Open Filename:=cFileX Set WB = Nothing End Sub