Добрый день господа. Помогите пожалуйста. Имеется код который открывает книгу и копирует в нее значение из TextBox (UserForm).
1 вопрос : как сделать что бы вставка значений происходила как текст ?! ( проблема в том что длинные числа с нулями и вообще нули обрезает или преобразует в формат общий)
кусок кода:
Код
Dim oWbk As Workbook
Set oWbk = Workbooks.Open("\\Srv-2\1.xlsx")
'Windows("1.xlsx").Activate
'Workbooks("1.xlsx").Close True
Dim lLastRow As Long
' A.
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row + 1
ActiveSheet.Cells(lLastRow, "A").Value = Me.TextBox25.Value
ActiveSheet.Cells(lLastRow, "B").Value = Me.TextBox24.Value
2 вопрос: Как сделать что бы инициализации формы Label1.Caption = последней заполненной ячейке в другой книге. Есть код который копирует значение определенной
Код
Dim sShName As String, sAddress As String, vData
'Отключаем обновление экрана
Application.ScreenUpdating = False
Workbooks.Open "\\Srv-2\1.xlsx"
sAddress = "A1" 'или одна ячейка - "A1"
'получаем значение
vData = Sheets("1" ;) .Range(sAddress).Value
ActiveWorkbook.Close False
'Записываем данные на активный лист книги,
'с которой запустили макрос
If IsArray(vData) Then
[A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
Else
Me.Label1.Caption = vData
End If
'Включаем обновление экрана
Application.ScreenUpdating = True
но не могу никак прикрутить lLastRow = Cells(Rows.Count,1).End(xlUp).Row
2. Если использовать просто "Cells", то идет обращение к активному листу активной книги, а к другой книге и листу следует обращаться по конкретными именам:
Dim sShName, sAddress, vData As String
Dim WB As Object
'Отключаем обновление экрана
Application.ScreenUpdating = False
set WB = Workbooks.Open "C:\Documents and Settings\Книга1.xls"
sAddress = "A1" 'или одна ячейка - "A1"
'получаем значение
vData = WB.Sheets("ИмяЛиста").Cells(Rows.Count, 1).End(xlUp).Value
Пользователи, как школьники, учиться хотят далеко не все, а отличниками становятся единицы. Проблема - это ситуация, в решении которой человек не заинтересован.
Dim sShName, sAddress, vData As String
Dim WB As Object
'Отключаем обновление экрана
Application.ScreenUpdating = False
set WB = Workbooks.Open ("C:\Documents and Settings\Книга1.xls")
sAddress = "A1" 'или одна ячейка - "A1"
'получаем значение
vData = WB.Sheets("ИмяЛиста") .Cells(Rows.Count, 1).End(xlUp).Value
Доброго времени суток! У меня похожая проблема, не могу найти решение, при копировании ячеек со значениями все копипастится как в исходнике, а вот при обработке макросом, все из скопированных значений конвертируются в числовые значения и формат ячеек автоматически меняется из общего в числовой. Добавлять апостроф не хочу, т.к. при переносе инфы в другие источники он сохраняется, переводить формат ячеек в текстовый можно, но тоже не хотелось бы (ведь Excel же хранит текстовые данные в общем формате, хотелось бы получить в итоге информацию абсолютно идентичную исходной). А метод Text к Cells у меня вообще выдает ошибку 1004 "нельзя установить метод класса Range". И присвоение формата "Общий(General)" тоже не дает эффекта (применять "до" бессмысленно, применять "после" уже поздно, текст уже конвертируется в число. Может кто знает решение?