Страницы: 1
RSS
InputBox
 
Добрый вечер.  
Просьба подсказать где ошибка в нижеуказанном коде.  
Цель - вставить в следующую пустую ячейку (столбца А) данные с интпутбокса.    
Заранее спасибо!  
 
Option Explicit  
Sub i()  
Dim rk As Long, i As String  
i = InputBox("", "", "")  
rk = Sheets("Лист1").Columns("A").Rows(65536).End(xlUp).Row + 1  
Sheets("Лист1").Cells(rk, 1) = i.Value  
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
у переменной типа String не может быть проперти .Value  
 
замените "= i.Value" на "= i"
KL
 
блин, спасибо ))
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Тут одной строки достаточно :)  
 
Sub i()  
Sheets("Лист1").range("A65536").End(xlUp)(2)=InputBox("", "", "")  
End Sub
 
Даже так:  
 
Sub i()  
Sheets("Лист1").range("A65536").End(xlUp)(2)=InputBox("")  
End Sub
KL
 
ну, это только часть макроса, дальше переменные i и rk ещё используются  
но всё равно всем спасибо!  
 
ps. Чтобы не открывать новую тему, может заодно подскажете как закрыть неактивные книги с помощью VBA? (оставить только AcriveWorkbook)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Sub CloseNonActiveWorkbooks()  
Dim Wb As Workbook, MyWb As Workbook  
   Set MyWb = ActiveWorkbook  
   For Each Wb In Workbooks  
       If Wb.Name <> MyWb.Name Then  
           Wb.Close SaveChanges:=False 'True - если нужно сохранить книгу при закрытии  
       End If  
   Next Wb  
End Sub
 
Так и авто загружаемые грохнет. Персонал и т.д.:  
Public Sub www()  
   Dim wb As Workbook  
   For Each wb In Workbooks  
       If Not wb Is ThisWorkbook And Windows(wb.Name).Visible Then wb.Close -1  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
{quote}{login=LightZ}{date=29.12.2011 11:57}{thema=}{post}ну, это только часть макроса, дальше переменные i и rk ещё используются  
но всё равно всем спасибо!  
 
ps. Чтобы не открывать новую тему, может заодно подскажете как закрыть неактивные книги с помощью VBA? (оставить только AcriveWorkbook){/post}{/quote}  
 
как-то так:  
 
dim wb as Workbook  
strWbName=ActiveWorkbook.Name  
for each wb in workbooks  
if wb.name<>strWbName then wb.close savechanges:=true 'false  
next wb
KL
 
Спасибо!
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
{quote}{login=KukLP}{date=30.12.2011 12:13}{thema=}{post}Так и авто загружаемые грохнет. Персонал и т.д.:  
Public Sub www()  
   Dim wb As Workbook  
   For Each wb In Workbooks  
       If Not wb Is ThisWorkbook And Windows(wb.Name).Visible Then wb.Close -1  
   Next  
End Sub{/post}{/quote}  
Если речь о файлах типа PERSONAL.xlsb, то, если не ошибаюсь, их это не закроет
 
Так это:  
Public Sub www()  
Dim wb As Workbook  
For Each wb In Workbooks  
If Not wb Is ThisWorkbook And Windows(wb.Name).Visible Then wb.Close -1  
Next  
End Sub  
и писалось, чтоб не закрыть. А это закроет:  
Sub CloseNonActiveWorkbooks()  
Dim Wb As Workbook, MyWb As Workbook  
Set MyWb = ActiveWorkbook  
For Each Wb In Workbooks  
If Wb.Name <> MyWb.Name Then  
Wb.Close SaveChanges:=False 'True - если нужно сохранить книгу при закрытии  
End If  
Next Wb  
End Sub  
И вариант Кирилла закроет.
Я сам - дурнее всякого примера! ...
 
давайте спросим автора темы:    
LightZ, Вы знаете, что такое Личная Книга Макросов? Ответ принимается либо ДА, либо НЕТ  
   
вот и посмотрим ))
 
На всякий случай, создал PERSONAL.xlsb и попробовал свой код - PERSONAL.xlsb не закрылся, а все видимые книги кроме активной - да :)
KL
 
{quote}{login=}{date=30.12.2011 12:45}{thema=}{post}давайте спросим автора темы:    
LightZ, Вы знаете, что такое Личная Книга Макросов? Ответ принимается либо ДА, либо НЕТ  
   
вот и посмотрим )){/post}{/quote}  
Нет, ну почему же? Он ведь может поделиться макросом с тем, кто знает :)
KL
 
а у меня, вроде, PERSONAL.xlsb, закрывает ((  
 
P.S. Правда, я не сохранял её, я лишь создал макрос в PERSONAL.xlsb, т.е. она создалась, создал ещё книги (Ctrl+N) и запустил макрос, макрос закрыл PERSONAL.xlsb
 
Сейчас проверю, насколько я помню, и в XL2003 этот цикл не закрывал невидимые файлы.
KL
 
Я пробовал, прежде чем запостить код. В 2003 закрыло не только персонал, но и еще книгу в фоне, к-рая не является надстройкой, но грузится из xlstart.
Я сам - дурнее всякого примера! ...
 
{quote}{login=}{date=30.12.2011 12:48}{thema=}{post}а у меня, вроде, PERSONAL.xlsb, закрывает ((  
 
P.S. Правда, я не сохранял её, я лишь создал макрос в PERSONAL.xlsb, т.е. она создалась, создал ещё книги (Ctrl+N) и запустил макрос, макрос закрыл PERSONAL.xlsb{/post}{/quote}  
Мы же говорим об авто-подгруженных :)
KL
 
да ты, Серёг, вообще молодец )) Это мы с Кириллом всё на чайников надеемся ))
 
{quote}{login=KukLP}{date=30.12.2011 12:52}{thema=}{post}Я пробовал, прежде чем запостить код. В 2003 закрыло не только персонал, но и еще книгу в фоне, к-рая не является надстройкой, но грузится из xlstart.{/post}{/quote}  
Но она же видимая, а значит ничем не отличается от загруженной вручную :)
KL
 
Вот это:  
Public Sub www()  
Dim wb As Workbook  
For Each wb In Workbooks  
If Not wb Is ThisWorkbook Then wb.Close -1' я убрал проверку на видимость  
Next  
End Sub  
И в 2007 закрыло персонал. Правда у меня грузится personal.xls для всех версий один.
Я сам - дурнее всякого примера! ...
 
Протестировал. Создал PERSONAL.xlsb, закрыл Excel, книга сохранилась.  
Открыл Excel, создал несколько книг. Запустил макрос - он всё-таки закрыл авто-подгруженную PERSONAL.xlsb  
 
Excel 2010
 
>> Но она же видимая, а значит ничем не отличается от загруженной вручную :)  
Да нет же! Автозагружаемая невидимая, с моими макросами общего пользования.
Я сам - дурнее всякого примера! ...
 
Пожалуй сдаюсь :)
KL
 
))))
 
{quote}{login=}{date=30.12.2011 12:45}{thema=}{post}давайте спросим автора темы:    
LightZ, Вы знаете, что такое Личная Книга Макросов? Ответ принимается либо ДА, либо НЕТ  
   
вот и посмотрим )){/post}{/quote}  
Да, знаю, потому и воспользовался кодом:  
Dim x As Workbook  
For Each x In Workbooks  
If Not x Is ThisWorkbook And Windows(x.Name).Visible Then x.Close -1  
Next
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Что значит вопрос не по теме, на второй день уже не найдешь. Я тут подумал от скуки...:-)  
Public Sub www()  
   Dim wb As Workbook  
   For Each wb In Workbooks  
       If Not wb Is ThisWorkbook And Not wb.Path = Application.StartupPath _  
          And Not wb.Path = Application.AltStartupPath Then wb.Close -1  
   Next  
End Sub  
Это на случай, если есть книги, открытые методом getobject.
Я сам - дурнее всякого примера! ...
Страницы: 1
Наверх