Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: OCHEN' NUJNA POMOSH Добавлено: 10.06.05 16:34  

Автор вопроса:  Ramil | Web-сайт: www.Ramil.boom.ru | ICQ: 286597559 
Mne nado udalit cifru 5 katoraya naxoditsya v
Range("a1") v knige book1.xls katoraya naxoditsya v C:\

V drugom knige nado zdelat' knopku katoraya udalit etu cifru ... 5 ne otkrivaya book1.xls i saxronit book1.xls

 "Ne otkrivaya" fayl udalit ... i saxronit.

Pomogite pojaluysta (mne ochen' nado)

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 10.06.05 21:11
Ниччего не понятно, как это можно: не открывая книгу чего-то в ней удалить и её сохранить... Ты ты определился для начала для чего это тебе нужно и чего этим требуется добиться? Желательно с примером и с описанием, что требуется, саму суть, цель...

Ответить

Номер ответа: 2
Автор ответа:
 sergee



ICQ: 345653131 

Вопросов: 10
Ответов: 23
 Web-сайт: webserge.no-ip.info
 Профиль | | #2
Добавлено: 11.06.05 03:51
Внести изменения в книгу не открывая ее не получится, но можно сделать так чтобы вся работа с книгой прошла таким образом что пользователю этого не будет видно (т.е. excel на экране не появится)... Может тебе это и надо?

Ответить

Номер ответа: 3
Автор ответа:
 Ramil



ICQ: 286597559 

Вопросов: 13
Ответов: 25
 Web-сайт: www.Ramil.boom.ru
 Профиль | | #3
Добавлено: 11.06.05 10:07
Delo v tom chto faylov ochen' mnogo ...
Esli pri najatiya knopki programma budet otkrivat' falyi eto zaymyot ochen' mnogo vremeni ... 50 faylov.
Tem bolee u menya fayli ochen' dolgo soxranyayutsya :( Ne znayu pochemu ... esli kto znaet mojet i v etom pomojet ... ya odnajdi zdelal progu v etix knigax, ona otkrivala eti fayli delala izmeneniya i saxranyala ix, posle etogo u menya oni ochen' dolgo soxranyayutsya :(
A vo vtorix esli pri najatiya knopki budet otkrivat' vse eti 50 faylov eto toje mnogo vremeni zaymyot :(
Sergee To chto ti napisal moget mne prigoditsya ... mojesh napisat' primer ?
Esli eti fayli ne budut vidni polzivatelyu mne eto toje mojet prigoditsya ...
Pomogite rebyata esli mojno ... mne srochno nado zdelat' eto ... Sposibo.

Ответить

Номер ответа: 4
Автор ответа:
 sergee



ICQ: 345653131 

Вопросов: 10
Ответов: 23
 Web-сайт: webserge.no-ip.info
 Профиль | | #4
Добавлено: 11.06.05 12:52
    
Dim exlDoc As Excel.Application
    Dim exlBook As Excel.Workbook
   
    Private Sub Button1_Click
        exlDoc = New Excel.Application
        
        'Открываем файл
        exlBook = exlDoc.Workbooks.Open("c:\book.xls";)

        'Делает Excel видимым пользователю (False - невидимым)
        exlDoc.Visible = True
   
        'Тут допишешь код для разных действий с книгой

        'Сохраняем книгу и закрываем Excel
        exlBook.Save()
        exlDoc.Quit()
    End Sub

Ответить

Номер ответа: 5
Автор ответа:
 Ramil



ICQ: 286597559 

Вопросов: 13
Ответов: 25
 Web-сайт: www.Ramil.boom.ru
 Профиль | | #5
Добавлено: 11.06.05 14:12
Spasibo otvet ... no etot ne rabotaet :(
exlDoc pochemuto oshibku vidayot

Ответить

Номер ответа: 6
Автор ответа:
 ActiveX



Вопросов: 0
Ответов: 73
 Профиль | | #6 Добавлено: 12.06.05 04:24
Ramil, Если для Вас принципиально использовать именно предложенный вариант, то :

Private Sub ExcelEarlyBinding()

Dim xlAp As New Excel.Application
Dim xlWb As Excel.Workbook

Set xlWb = xlAp.Workbooks.Open("C:\Temp\Test.xls";)

' здесь Ваши действия с рабочей книгой

xlWb.Close True
xlAp.Quit

Set xlWb = Nothing
Set xlAp = Nothing

End Sub


Однако достичь эффекта "невидимости действий" для пользователя можно всего лишь отключив обновление экрана :

Application.ScreenUpdating = False

' здесь Ваши действия с рабочей книгой :
' открытие, изменение данных, закрытие

Application.ScreenUpdating = True

Ответить

Номер ответа: 7
Автор ответа:
 Ramil



ICQ: 286597559 

Вопросов: 13
Ответов: 25
 Web-сайт: www.Ramil.boom.ru
 Профиль | | #7
Добавлено: 13.06.05 14:52
Ya poprobival eto no ... chto to mne ponyatno ... po moemu ona otkrivaet no ne zakrivaet fayl ... potamu chto posle otogo ya xatel otkrit' i posmatret' poluchilos'li vsyo eto ... mne pishet chto fayl ispolzuetsya ... no pri etom mne ne pokazivaet fayl :(
Pojaluysta napishi mne s primerami ...

Ответить

Номер ответа: 8
Автор ответа:
 ActiveX



Вопросов: 0
Ответов: 73
 Профиль | | #8 Добавлено: 13.06.05 18:55
Ramil, закрытие рабочей книги осуществляется с использованием метода Close, закрытие приложения осуществляется с использованием метода Quit. А весь пример уже опубликован (см. Sergee, ActiveX) и добавить вроде уже нечего, за исключением изменений в самой рабочей книге, но это целиком Ваша прерогатива.

Ответить

Номер ответа: 9
Автор ответа:
 Ramil



ICQ: 286597559 

Вопросов: 13
Ответов: 25
 Web-сайт: www.Ramil.boom.ru
 Профиль | | #9
Добавлено: 14.06.05 12:23
Spasibo vam bolshoe . Ya zdelal vsyo.
Vi mojete otvetit' mne na odin vopros ?
A mojno zdelat' izmeneniya v knige ne otkrivaya ego ?

Ответить

Номер ответа: 10
Автор ответа:
 Ramil



ICQ: 286597559 

Вопросов: 13
Ответов: 25
 Web-сайт: www.Ramil.boom.ru
 Профиль | | #10
Добавлено: 14.06.05 12:39
Private Sub ExcelEarlyBinding()

Dim xlAp As New Excel.Application
Dim xlWb As Excel.Workbook

Set xlWb = xlAp.Workbooks.Open("C:\Test.xls";)
Application.ScreenUpdating = False
'Zdes' ya pishu to chto mne nado zdelat' s otkritoy knigoy
For i = 1 To 50
z = i
Worksheets(z).Select
Range("a1";).Select
Selection.ClearContents
Next i
xlWb.Close True
xlAp.Quit

Set xlWb = Nothing
Set xlAp = Nothing

End Sub

U menya ne poluchaetsya :(

Ответить

Номер ответа: 11
Автор ответа:
 ActiveX



Вопросов: 0
Ответов: 73
 Профиль | | #11 Добавлено: 16.06.05 00:14
Ramil, я предложил использовать ScreenUpdating исключительно в качестве альтернативного варианта, т.е. вариант Sergee Or ScreenUpdating :

Private Sub ChangeYouWorkbook()

Dim iCount As Integer

Application.ScreenUpdating = False

With Workbooks.Open("C:\Test.xls";)
     If .Worksheets.Count < 50 Then
        MsgBox "В рабочей книге " & .Name & " меньше 50 рабочих листов", 16, "Error"
     Else
        For iCount = 1 To 50
            .Worksheets(iCount).Range("A1";).ClearContents
        Next
     End If
     .Close True
End With

Application.ScreenUpdating = True

End Sub

Ответить

Номер ответа: 12
Автор ответа:
 Ramil



ICQ: 286597559 

Вопросов: 13
Ответов: 25
 Web-сайт: www.Ramil.boom.ru
 Профиль | | #12
Добавлено: 16.06.05 11:37
ActiveX Spasibo vam bolshoe ...
vi mne ochen' pomogli.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам