Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 61

Как определить макросом адрес ячейки?

15.11.2015, 00:00. Показов 3272. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
В таблицу-форму заносятся данные, по которым она производит расчет с помощью формул.
Когда нажимаем на кнопку "Сохранить расчеты", ниже создается копия таблицы со значениями (без формул).
ВОПРОС: т.к. данные каждый раз будут меняться, как сделать так чтобы копии таблиц создавались одна за другой?

Ниже код, в котором адрес ячейки (В55) нужно поменять. Программа должна проверять столбец В на наличие последней непустой ячейки, определить ее номер строки и прибавить единицу. Тем самым определить адрес ячейки.

Visual Basic Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 Range("B16:I32").Select
    Selection.Copy
    Range("B55").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Range("B16:I32").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("B55:I71").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Rows("56:71").Select
    Selection.Rows.Group
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2015, 00:00
Ответы с готовыми решениями:

Как макросом провести фигуру-линию - из центра одной ячейки в центр другой ячейки
Добрый день, господа программисты. Помогите разобраться.  На листе находятся две ячейки (я подкрасил их желтым и зеленым цветом) ...

Как определить адрес ячейки, в которой находится картинка?
Задача такая: экспортировать все картинки из файла xlsx, который представляет собой каталог запчастей, полученный из PDF при помощи...

Как выделить определенные ячейки макросом?
Добрый день! Заранее простите за глупый вопрос. Есть массив ячеек (5-7 тысяч в столбце).Нужно выделить, допустим, каждую третью. Как...

7
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
15.11.2015, 01:04
Лучший ответ Сообщение было отмечено sexycat как решение

Решение

sexycat, пробуйте, без файла-примера гарантировать не могу
Visual Basic Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub sexycat()
Dim i As Long
  i = Cells(Rows.Count, "B").End(xlUp).Row + 1
  If i < 55 Then i = 55
  Range("B16:I32").Copy
  Cells(i, "B").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
  Cells(i, "B").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  Application.CutCopyMode = False
  With Selection.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
  ActiveSheet.Outline.SummaryRow = xlAbove
  Rows(i + 1 & ":" & i + 16).Group
End Sub
1
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 61
15.11.2015, 01:38  [ТС]
Спасибо вам большое! Все работает. Скажите, пожалуйста, как переделать код, если остается неизменной строка 55, а менялись столбцы B,С,D?
0
Наблюдатель
 Аватар для Alex Dark
457 / 192 / 33
Регистрация: 01.05.2012
Сообщений: 1,028
15.11.2015, 07:51
Цитата Сообщение от sexycat Посмотреть сообщение
если остается неизменной строка 55, а менялись столбцы B,С,D?
Если правильно понял суть

Cells(<Номер строки>, <номер колонки>).<команда>
Cells( 2,3 ) - это ячейка С2

Range(Cells(<Номер строки 1>, <номер колонки 1>) , Cells(<Номер строки 2>, <номер колонки 2>)).
Range(Cells(2,1) , Cells(4,5) ) - Это область ячеек с А2 по Е4


Номера колонки
"А"=1
"B"=2
"C"=3 и так далее
0
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 61
15.11.2015, 18:23  [ТС]
Изменила код, он выдает runtime error 424 object required (2 строка). Посмотрите, пожалуйста, что не так?

Visual Basic Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim j As Long
  j = Cells(3, Col.Count).End(xlUp).Col + 1
  If j < 3 Then j = 3
    Range("I19:I29").Copy
  Cells(3, j).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
  
  Cells(3, j).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  
  Application.CutCopyMode = False
  With Selection.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
  ActiveSheet.Outline.SummaryCol = xlAbove
0
Наблюдатель
 Аватар для Alex Dark
457 / 192 / 33
Регистрация: 01.05.2012
Сообщений: 1,028
15.11.2015, 18:47
Честно - даже думать не хочется.
Вам не зря написли

Цитата Сообщение от Казанский Посмотреть сообщение
... без файла-примера гарантировать не могу
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
15.11.2015, 18:59
Цитата Сообщение от sexycat Посмотреть сообщение
Скажите, пожалуйста, как переделать код, если остается неизменной строка 55, а менялись столбцы B,С,D?
Какую именно часть кода? Cells(i, "B") это ячейка в строке i и столбце В. Попробуйте ставить другие буквы.
Цитата Сообщение от sexycat Посмотреть сообщение
выдает runtime error 424 object required (2 строка)
Что за объект Col?
0
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 61
15.11.2015, 19:28  [ТС]
без файла-примера гарантировать не могу
Расчеты.xlsx


Какую именно часть кода? Cells(i, "B") это ячейка в строке i и столбце В. Попробуйте ставить другие буквы.
В вашем коде копии таблиц создавались одна за другой ВНИЗ, нужно чтобы ещё создавались ВПРАВО

Что за объект Col?
я пыталась сама написать код и как наверно не так поняла, что Row-это строка, а мне нужно столбец, в который будут копироваться значения друг за другом


Получается по нажатию кнопки добавляется копия всей таблицы внизу и последний столбец этой таблицы наверху
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2015, 19:28
Помогаю со студенческими работами здесь

Как макросом из ячейки Excel вытащить число?
Есть файл с огромным количеством ячеек, с текстом типа 'Снят с про-ва 100 кг' (текст разный). Нужно или макросом или функцией вытащить из...

Определить адрес последней заполненной ячейки
Range(&quot;A1&quot;).SpecialCells(xlLastCell).Address возвращает тупо последнюю ячейку Cells(Rows.Count, 1).End(xlUp).Row возвращает НОМЕР...

Как найти букву столбца или удалить числа из ячейки макросом
Доброго дня! Помогите справиться с задачей В столбце А приводятся заголовки столбцов, расположенных на листе Данные В столбец B...

Необходимо в Excel определить адрес ячейки, в которой нажали кнопку
Всех приветствую. Проблема в следующем: На листе Excel размещено около 2000 кнопок, допустим в столбце D. Необходимо, чтобы при...

Определить адрес пересчитанной ячейки
У меня есть код, который отслеживает изменение ячейки. Как мне переделать код, чтоб выводило адрес пересчитанной ячейки, а не измененной? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel подробные расшифровки по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер