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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 03:28   #11
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Единственное, что осталось для косметических штрихов - сделать так, чтобы ячейки при копировании теряли форматировании (точнее - только оформление жирным шрифтом, выравнивание, размер шрифта, границы)
Вообще-то, в предложенных Вам вариантах копируется только значение.
Никакое форматирование не переносится.

Цитата:
И ещё хотелось бы сделать так, чтобы макрос проверял при старте, что первоначально курсор находится в нужном столбце, а то ведь если не в том месте будет стоять, то данные (мы же смещение используем) будут неверны.
Почитайте ещё раз этот пост: http://www.programmersforum.ru/showp...09&postcount=8

Обратите внимание на код Sheets("Данные для карточки").Range("B3").Value = ActiveCell.entirerow.cells(3)
В данном случае значение будет взято из 3-й ячейки строки, независимо от того, в каком столбце выделена ячейка.

Цитата:
В общем, хочется изваять код, который проверял, находится-ли курсор в 4-м столбце. Если нет - выдавал информационное окошко с просьбой поставить курсор куда надо и останавливал выполнение макроса.

Или по-другому сделать - чтобы макрос сам ставил курсор в 4-й столбец ТЕКУЩЕЙ строки. Это выполнимо?
Выполнимо всё.
Вот только ставить курсор в ячейку для копирования содержимого абсолютно не требуется.

Выкладывайте свой файл - посмотрим, как упростить и оптимизировать Ваш код.
EducatedFool вне форума Ответить с цитированием
Старый 12.07.2012, 17:18   #12
dina83
Новичок
Джуниор
 
Регистрация: 12.07.2012
Сообщений: 1
По умолчанию

Привет,
А как можно скопировать часть данных из ячейки? Например: "Значение: 1234454560560125452 ИМЕЕТ АБСОЛЮТНУЮ ТЕНДЕНЦИЮ К РЕАЛИЗАЦИИ". Из него надо скопировать только цифры. Цифры в каждой ячейке разные.
Мне это очень важно, помогите, если можете.
dina83 вне форума Ответить с цитированием
Старый 12.07.2012, 17:44   #13
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Всё что нашёл, и даже больше
Код:
Function GetNumeric(t As Range)
    Dim j As Integer, l As String
    For j = 1 To Len(t)
        If IsNumeric(Mid(t, j, 1)) Then l = l & Mid(t, j, 1)
    Next j
    GetNumeric = Val(l)
End Function

Public Function ExtractNumber(S As String)
    Dim i As Integer, str As String
    For i = 1 To Len(S)
        If InStr(1, "1234567890,", Mid(S, i, 1)) <> 0 Then str = str & Mid(S, i, 1)
    Next
    ExtractNumber = str
End Function

Public Function ExtractString(S As String)
    Dim i As Integer, str As String
    For i = 1 To Len(S)
        If InStr(1, "QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/ ", UCase(Mid(S, i, 1))) <> 0 Then str = str & Mid(S, i, 1)
    Next
    ExtractString = Application.Trim(str)
End Function

Function NumbersOnly(srcStr As String) As String
    Dim objRegEx As Object
    Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .Global = True
        .Pattern = "[^0-9,]"    '"\D"
        NumbersOnly = .Replace(srcStr, vbNullString)
    End With
    Set objRegEx = Nothing
End Function

Function Num(txt As String) 
    Dim N&
    For N = 1 To Len(txt)
        If Mid(txt, N, 1) Like "#" Then Num = Num & Mid(txt, N, 1)
    Next N
End Function

Function GetNotNumericFromLeft(t As Range)
    Dim j As Integer
    For j = 1 To Len(t)
        If Not IsNumeric(Mid(t, j, 1)) Then
            If Mid(t, j, 1) <> " " Then GetNotNumericFromLeft = Mid(t, j): Exit Function
        End If
    Next j
End Function
'то же самое, что выше, но в профиль :)
Function str123(txt As String) As String
    Dim i&
    For i = 1 To Len(txt)
        If InStr(" 0123456789", Mid(txt, i, 1)) = 0 Then Exit For
    Next i
    str123 = Mid(txt, i, Len(txt) - i + 1)
End Function
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 12.07.2012 в 17:46.
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистить значения после определённой ячейки Sorro Microsoft Office Excel 1 08.05.2009 12:03
Трёхуровневый выпадающий список по выборке с другого листа Constantinich Microsoft Office Excel 6 06.04.2009 11:28
Значение ячейки по названию листа VadimSh Microsoft Office Excel 4 02.12.2008 15:29
с помощью макроса скопировать значение всей строки(не одной ячейки, а нескольких) global Microsoft Office Excel 6 27.11.2008 17:43
Автоматическое заполнение данных из другого листа usgaz@list.ru Microsoft Office Excel 8 17.10.2008 10:41