Страница 2 из 2

Re: Копирование значений ячеек

Добавлено: 13 ноя 2013, 18:00
SAS888
...если хоть одна ячейка диапазона содержит формулу, несмотря, что все значения ячеек диапазона пустые, копирование производится. Если я удаляю формулы, то не производится.
Совершенно верно. Так и должно быть. Во первых, ячейка, содержащая формулу не есть пустая. Во-вторых, если, например, в ячейку ввести формулу сложения двух пустых ячеек, то результат будет равен нулю, т. е. не пустое значение.
Для решения Вашей задачи требуется уточнения:
1. Что возвращают формулы в указанном диапазоне? Число? текстовое значение? Или возможен любой вариант?
2. Считать ли пустой ячейку, в которой в результате расчета по формуле возвращается ноль?

Re: Копирование значений ячеек

Добавлено: 14 ноя 2013, 02:26
VanBlack
Примерно так выглядит копируемый диапазон (в данном случае это B88:D90). Именно для него нужны данные изменения, т.к. если в группе з участника, то боя за 3-е место не будет и значения останутся пустыми. Получается везде текстовые значения, за исключением столбца "C", там могут быть цифры обозначающие спортивный разряд. Код будет применяться когда нулей в ячейках не будет. Все ячейки будут либо пустыми, либо как на вложении...

Re: Копирование значений ячеек

Добавлено: 14 ноя 2013, 06:10
VanBlack
Прилагаю ещё вложение. По условию, код должен скопировать диапазоны ячеек только первого и четвёртого листа в имени которого содержится скобка. Второй и пятый лист содержит пустые значения ячеек диапазона, а третий и шестой вообще ничего не содержит в указанном диапазоне, - их копировать не нужно.

Re: Копирование значений ячеек

Добавлено: 14 ноя 2013, 06:32
SAS888
Можно так:

Код: Выделить всё

Sub Добавить_в_ход_поединков_За_3_места()
    Dim Sh As Worksheet, i As Long, x As Range
    i = 3
    For Each Sh In ThisWorkbook.Sheets
        If InStr(3, Sh.Name, "(") > 0 Then
            Set x = Sh.[B88 :D 90]
            If x.Text = "" Then
                Else
                Sheets("Ход поединков").Cells(i, 2).Resize(3, 3).Value = x.Value
                i = i + 3
            End If
        End If
    Next Sh
End Sub
Пример во вложении.

Re: Копирование значений ячеек

Добавлено: 14 ноя 2013, 11:18
VanBlack
Да уж, как всё просто, - когда объяснят... :) Спасибо! Всё отлично работает!