Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2013, 23:40   #1
Максикок
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 71
По умолчанию Макросы Exel

Создание на листе, ука-занном пользователем, таблицы методом копирования таблицы текущего листа с заменой значений всех чисел на их квадраты. Сгенерировать таблицу из 3 столбцов (количество строк указывает пользователь), причем значением каждой ячейки третьего слева столбца является сумма значений ячеек таблицы слева соответствующей строки.
помогите пожалуйста
Private Sub CommandButton2_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Set msh = ActiveSheet
msh.UsedRange.Copy
Set CurSheet = ActiveWorkbook.Worksheets(ComboBox1 .Text)
CurSheet.Range("A1").PasteSpecial
For i = 0 To msh.UsedRange.Coiumns.Count
For j = 0 To msh.UsedRange.Rows.Count
k = CurSheet.Cells(i, j)
k = k * k
Cell = CurSheet.Cells(i, j)

Next j
Next i
End Sub
по первому заданию вот ето получилось,но неправильно работает пока тчо

Последний раз редактировалось Максикок; 04.12.2013 в 00:10.
Максикок вне форума Ответить с цитированием
Старый 04.12.2013, 00:51   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Если так попробовать
Код:
Private Sub CommandButton2_Click()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Set msh = ActiveSheet
    lLastCol = msh.Range("iv1").End(xlToLeft).Column
    lLastRowMY = msh.Cells(msh.Rows.Count, 1).End(xlUp).Row
    Set CurSheet = ActiveWorkbook.Worksheets(ComboBox1.Text)
    msh.Range(msh.Cells(1, 1), msh.Cells(lLastRowMY, lLastCol)).Copy CurSheet.Range("A1")
    For Each cell In CurSheet.Range(CurSheet.Cells(1, 1), CurSheet.Cells(lLastRowMY, lLastCol))
        cell.Value = cell.Value ^ 2
    Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.12.2013, 01:09   #3
Максикок
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 71
По умолчанию

Спасибо большое,все работает.
Только можете пояснить что означают параметры
iv1,xlUp,lLastRowMY, lLastCol,
Максикок вне форума Ответить с цитированием
Старый 04.12.2013, 01:55   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

lLastCol = msh.Range("iv1").End(xlToLeft).Column -это номер столбца последней заполненной ячейки в первой строке смотрим справа наслево
lLastRowMY = msh.Cells(msh.Rows.Count, 1).End(xlUp).Row-номер последней не пустой строки снизу в первом столбце.Смотрим снизу вверх

xlToLeft,xlDown ,xlToRight,t xlUp константы.
Одно из значений XlDirection, указывающее направление, в котором нужно искать последнюю ячейку.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA макросы exel создание школьного дневника Secha Microsoft Office Excel 3 13.12.2012 00:56
Связать макросы Exel и Visio. Alexis_ Microsoft Office Excel 2 17.01.2012 11:39
Макросы Mariana RE Помощь студентам 0 23.12.2011 23:30
Макросы в Exel zverozavr Microsoft Office Excel 3 16.02.2011 19:10
Формулы или макросы в EXEL samas Microsoft Office Excel 2 27.03.2009 22:25