Вопрос № 112108: Здравствуйте, эксперты. Вопрос по Exel. Необходимо вставить в лист Рисунок (только *.jpg) из файла в определенное место, масштабировать его по высоте, сохранить текстовые данные листа в базе с путем хранения файла, УДАЛИТЬ ТОЛЬКО РИСУНОК для очередно...Вопрос № 112134: Уважаемые эксперты, ну пожалуйста помогите мне с этой задачей! Я уже 3-ий раз задаю этот вопрос и время для её сдачи у меня уже почти не осталось. Дан двумерный
массив А(30,30) Надо заменит любую строку на любой столбец. Номер строки и столбца подлеж...
Вопрос № 112.108
Здравствуйте, эксперты. Вопрос по Exel. Необходимо вставить в лист Рисунок (только *.jpg) из файла в определенное место, масштабировать его по высоте, сохранить текстовые данные листа в базе с путем хранения файла, УДАЛИТЬ ТОЛЬКО РИСУНОК для очередного ввода. Написан Макрос, не удается удалять рисунок. Заранее спасибо.
Если вставленный рисунок - единственный на активном листе:
ActiveSheet.Shapes(1).Delete
- удалит этот рисунок с листа
Соответственно, если объектов (рисунков) больше, то нужно указывать, какой именно объект нужно удалить, с помощью индекса либо указанием на конкретный объект.
--------- Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: Студент)
Ответ отправлен: 03.12.2007, 10:34 Оценка за ответ: 3 Комментарий оценки: Ответ полный, но не работает.
Отвечает: Черников Игорь Владимирович
Здравствуйте, Levochkin Andre!
Удалить все рисунки с активного листа можно так:
ActiveSheet.Shapes.SelectAll
Selection.Delete
--------- От каждого по способностям, каждому по труду
Уважаемые эксперты, ну пожалуйста помогите мне с этой задачей! Я уже 3-ий раз задаю этот вопрос и время для её сдачи у меня уже почти не осталось. Дан двумерный массив А(30,30) Надо заменит любую строку на любой столбец. Номер строки и столбца подлежащие замене следует вводить с клавитатуры.
Отвечает: Талипов А Н
Здравствуйте, Нещин Василий Фёдорович!
Ну этоже элементарно! Может быть есть какой-то подвох, не бывают такие простые задания! Может быть имелся в виду ассемблер?
Впрочем, вот пример, для старого доброго qbasic. Он демонстрирует нужные и ненужные функции. Всё наглядно. Типа шахмат но не 8х8 а 31х31. Ну а вместо фигурок буковки и цыфорки.
Запускайте
вводите
get 0,1 <enter>
to 2,3 <enter>
И смотрите, как значки обменялись местами.
Так немного веселее.
Приложение:
--------- Всё будет так, как должно быть, даже если будет иначе.
Ответ отправил: Талипов А Н (статус: 4-ый класс)
Ответ отправлен: 03.12.2007, 18:09 Оценка за ответ: 3 Комментарий оценки: Спасибо! но QBASIC мы вообще не проходили так что непонимаю я ничего в твоём примере. Но всё равно спасиба что хоть попытался помочь
Отвечает: Черников Игорь Владимирович
Здравствуйте, Нещин Василий Фёдорович!
Вот Ваш пример. Он реализован в макросе EXCEL.
Sub Макрос1()
Dim A(30, 30) 'первая цифра - нумерация строк, вторая - столбцов
Dim столбецМасс
Dim строкаМасс
Dim Столбец As Integer
Dim Строка As Integer
For i = 0 To 30 'Эта и следующие 6 строк для наглядности, их можно удалить
For j = 0 To 30
счётчик = счётчик + 1
A(i, j) = счётчик 'Заполнение массива
Worksheets("Лист1").Cells(i + 1, j + 1).Value = A(i, j) 'Вывод массива на лист1. Он обязательно должен присутствовать в книге!
Next j
Next i
Столбец = InputBox("Введите номер столбца", "Ввод")
Строка = InputBox("Введите номер строки", "Ввод")
For i = 0 To 30' D 'В этом цикле заданная строка заменяется на столбец, а заданный столбец на строку
столбецМасс = A(i, Столбец - 1)
строкаМасс = A(Строка - 1, i)
A(i, Столбец - 1) = строкаМасс
A(Строка - 1, i) = столбецМасс
Next i
For i = 0 To 30 ' С этой строки начинается вывод изменённого массива на Лист1, для наглядности
For j = 0 To 30
Worksheets("Лист1").Cells(i + 33, j + 1).Value = A(i, j)
Next j
Next i
End Sub
Удачи!
--------- От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 8-ой класс)
Ответ отправлен: 05.12.2007, 19:26 Оценка за ответ: 5