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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 10:23   #1
marc-nikita
ничего не понимаю.
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 37
По умолчанию макрос копироввание имения ячейки

ребят привет, у меня такая проблема. Есть макрос, он создает новую книгу, в книге в ячейку копирует значение из первой книги во второй столбец, а в первый столбец копирует название листа(первой книги), вот ребят как сделать так чтобы копировались только имя ячейки которой я указываю (а не имя листа)

вот макрос:

Sub Cr_Op(book As String)
On Error GoTo i:
Workbooks.Open Filename:=book
Exit Sub
i:
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=book
End Sub

Sub StaV()

Dim book, a1, a2, name1 As String
Dim cur_range, row As Range
Dim x, y, k As Integer



k = 50
For x = 1 To k
y = 1
With ActiveSheet
Set cur_range = Selection
cur_range.Activate
If Cells(cur_range.row, 1) = "" Then
GoTo l:
End If
book = Left(LTrim(Cells(cur_range.row, 1)), 2)

url = ActiveWorkbook.path + "\elements\" + book + ".xls"

Cr_Op (url)

ThisWorkbook.Activate
Selection.Copy
name1 = ActiveSheet.name + " " + str(Cells(cur_range.row, 2).Value)
End With
Workbooks(book + ".xls").Activate

Range("b1").Select

Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
y = y + 1
Loop
ActiveSheet.Paste Link:=True
Cells(y, 1) = name1
ActiveWorkbook.Save
ActiveWorkbook.Close


l:
ThisWorkbook.Activate
ActiveCell.Offset(1, 0).Select
a1 = ActiveCell.Address
ActiveCell.Offset(0, 1).Select
a2 = ActiveCell.Address
Set ran = Range(a1 + ":" + a2)
ran.Select
Next
End Sub

и второй вопрос:

у меня идет столбец в нем слово (пробел) значение, можно ли этот столбец по слову и значению разделить на два столбца.

всем спасибо за помощь
разбуди всех людей от кошмарного сна,
Вокруг давно всё не так и повсюду война!
marc-nikita вне форума Ответить с цитированием
Старый 11.12.2009, 13:00   #2
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

по поводу разделения колонки формата "текст пробел текст" легко, вот например первая колонка разносится во вторую и третью...
Код:
for i = 1 to n
a=split(cells(i,1).value," ")
cells(i,2).value = a(1)
cells(i,3).value = a(2)
next i
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 11.12.2009, 14:32   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от Xpoft Посмотреть сообщение
Код:
for i = 1 to n
a=split(cells(i,1).value," ")
cells(i,2).value = a(1)
cells(i,3).value = a(2)
next i
Чуть поправлю. Можно?
Код:
a=split(cells(i,1).value," ")
cells(i,2).value = a(0)
cells(i,3).value = a(1)
Т.к. нижняя граница массива, созданного командой Split, начинается с 0. Притом независимо от Option Base
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 15.12.2009, 09:03   #4
marc-nikita
ничего не понимаю.
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 37
По умолчанию

ребят... только не понимаю, это теперь макросом сделать???

должно быть что-то так:

Sub Макрос4()

For i = 1 To n
a = Split(Cells(i, 1).Value, " ")
Cells(i, 2).Value = a(1)
Cells(i, 3).Value = a(2)
Next i

End Sub
разбуди всех людей от кошмарного сна,
Вокруг давно всё не так и повсюду война!
marc-nikita вне форума Ответить с цитированием
Старый 15.12.2009, 09:12   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно так:
Код:
Sub Макрос4()
    Dim i As Long, a: Application.ScreenUpdating = False
    For i = 1 To 100
        a = Split(Cells(i, 1), " "): Range(Cells(i, 2), Cells(i, UBound(a) + 2)).Value = a
    Next
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 15.12.2009, 09:28   #6
marc-nikita
ничего не понимаю.
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 37
По умолчанию

он данные теряет.... то есть столюец не один к одному получается...
разбуди всех людей от кошмарного сна,
Вокруг давно всё не так и повсюду война!
marc-nikita вне форума Ответить с цитированием
Старый 15.12.2009, 10:05   #7
marc-nikita
ничего не понимаю.
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 37
По умолчанию

разобрался надо было i побольше сделать
разбуди всех людей от кошмарного сна,
Вокруг давно всё не так и повсюду война!
marc-nikita вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Макрос активации ячейки по выбору в фильтре dsapa Microsoft Office Excel 8 20.07.2009 08:13
Как запустить макрос из ячейки? Maxx Microsoft Office Excel 8 15.04.2009 15:47
как заставить работать макрос при определенном значении ячейки? Град Microsoft Office Excel 5 30.05.2008 16:06
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39