С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
1081 / 522 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
1

Копирование со сдвигом

25.03.2014, 16:21. Показов 3874. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане!На листе имеется картинка в виде раскрашеных ячеек.Но в искаженном виде(см.файл).Строки сдвинуты в сторону.Имеется 2 макроса которые восстанавливают(сдвигают)всё на свои места.Однако работает всё это при строго определённом размере изображения.
Для первого макроса Формула копирования диапазона ячеек имеет вид R(11+3*i)C(248-i) : R(11+k+3i)C248
где k=2, For i=0 To i=100
Формула вставки этих ячеек R(211+3*i)C9
Для второго макроса Формула копирования диапазона имеет вид R(8+3*i)C9 : R(8+k+3*i)C(248-i)
Формула вставки этих ячеек R(208+3*i)C(9+i)

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

С уважением и надеждой!Олег.
Вложения
Тип файла: rar Копирование ячеек со сдвигом.rar (19.1 Кб, 16 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2014, 16:21
Ответы с готовыми решениями:

Удаление столбцов со сдвигом влево и срок со сдвигом вверх
Добрый день! Имеется excel файл который необходимо привести к определённому формату, что...

Программа со сдвигом Влево и со сдвигом в право
Задание: Написать программу на Assembler которая бы сдвигала 1 светодиод в лево и в право как...

Синусоида со сдвигом!
Привет! Помогите пожалуйста нарисовать вот такой рисунок... Сначала прямая, потом синусоида, потом...

Шифрование сдвигом
Нужно зашифровать файл арифметическим сдвигом на 3 позиции данные сохраняются в файл символьном...

4
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
25.03.2014, 21:05 2
Цитата Сообщение от OLEGOFF Посмотреть сообщение
Имеется 2 макроса которые восстанавливают(сдвигают)всё на свои места
Чет я этого не заметил
Попробуйте макрос, который определяет наименее закрашенный столбец (границу картинки) и переносит кусок картинки справа от него в начало.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub bb()
Dim ur As Range, col As Range, colm&, c As Range, n&, nm&, tmpSh As Worksheet, aSh As Worksheet
Set aSh = ActiveSheet
Set ur = aSh.UsedRange
Application.ScreenUpdating = False
With ur
  nm = .Rows.Count
  For Each col In .Columns
    n = 0
    For Each c In col.Cells
      If c.Interior.Color <> vbWhite Then n = n + 1
    Next
    If n < nm Then nm = n: colm = col.Column
  Next
  Set tmpSh = Worksheets.Add
  Range(aSh.Columns(colm), .Columns(.Columns.Count)).Cut tmpSh.Range("A1")
  tmpSh.UsedRange.EntireColumn.Copy
  aSh.Cells(1, .Column).Insert Shift:=xlToRight
End With
Application.DisplayAlerts = False
tmpSh.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
А как Вы такие файлы делаете?
Миниатюры
Копирование со сдвигом  
1
1081 / 522 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
26.03.2014, 01:17  [ТС] 3
Уважаемый Казанский!Большое спасибо за отзыв.Ваш макрос работает,но не совсем корректно. Прилагаю новый файл для анализа.А заодно и программу с помощью которой это делается.
Вложения
Тип файла: zip Копирование ячеек со сдвигом полный.zip (69.1 Кб, 16 просмотров)
Тип файла: zip Bitmap2Sheet.zip (108.1 Кб, 6 просмотров)
0
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.03.2014, 09:06 4
В Свойствах файла-программы указан автор и сайт, туда и обращайтесь.
На мой взгляд, программа сыровата - падает при ширине картинки больше 250, не запоминает последнюю выбранную папку, создает картинку "в себе". Видимо, это черновой вариант. Проще заново написать.
0
1081 / 522 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
26.03.2014, 09:15  [ТС] 5
Я вообще-то просил не программу усовершенствовать,а подсказать как оформить копирование-вставку ячеек через цикл.
Просто есть другая идея для работы.А ширина картинки не может быть больше 256 ячеек по определению Екселя
0
26.03.2014, 09:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2014, 09:15
Помогаю со студенческими работами здесь

Деление сдвигом
нужно разделить 64 на 8 делаю так Mov Ax,64 MOV CX,3 SHR AX,CX Но, преподаватель говорит,...

Массив со сдвигом....
Создать числовой масссив A. Массив B заполнить след. образом: сначала перенести три элемента из...

Поиск со сдвигом
Нужно сделать так что бы после поиска в 1 строке во 2 был поиск с учетом пропуска 1, и так далее, и...

Перестановка со сдвигом
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;windows.h&gt; using namespace std; typedef...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru