Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как выделить ячейки содержащие текстовые данные и/или все заполненые ячейки?
 
Здравствуйте
Подскажите пожалуйста, как выделить ячейки содержащие текстовые данные и/или все заполненые ячейки?

В моем excel файле обычно используеться диапазон ячеек B2:D101, но этот диапазон порой значительно изменяеться, как по столбцам так и по строкам.
Данный вопрос встал с целью уменьшения количества операций и автоматизации процесса.
Это необходимо для работы с  макроссами которые ориентированы на обработку выделенных диапазонов.
К примеру
Код
 For Each Cell In Selection 
Next

Пробовал через "Найти" с фильтром * и потом выделить все результаты , но это макросом не пишеться и мне кажеться, что может даже не полноценно работать.

Удалить указанное слово из текста
 
Здравствуйте
Подскажите пожалуйста как удалить уникальное слово за одну попытку (используя диалоговое окно "Заменить") так, чтобы оно удалялось как целое, а не как часть другого слова
?
Если использовать пробелы с обеих сторон слова, то я не знаю как мне удалить тогда слова вначале и в конце, да так чтоб не зацепить другие слова.
К примеру необходимо удалить слово:
in
в тексте:
interface bookinbook runin interface,bookinbook,runin interface;bookinbook;runin In book  of library Book in list
Our place in In,book,of,library Book,in,list Our,place,in In;book;of;library Book;in;list Our;place;in
должно получиться:
interface bookinbook runin interface,bookinbook,runin interface;bookinbook;runin book  of library Book list Our place book,of,library Book,list Our,place book;of;library
Book;list Our;place
Как удалить отдельные слова на листе из фразы, что задаеться?
 
Подскажите пожалуйста,
как удалить отдельные слова на листе из фразы, что задаеться?
Есть фраза:
tag1 tag2 tag3 tag4 tag5
необходимо что б каждое слово tag1, tag2, tag3, tag4, tag5 на листе было удалено.
Перед  tag1, tag2, tag3, tag4, tag5 стоят пробелы которые участвуют в замене.

Возможно ли это реализовать в диалоговом окне "Найти и заменить"?
Изменено: seregasss435 - 18.12.2021 17:15:21
Как сохранить через диалоговое окно "Сохранить как" чтобы csv файл имел разделитель запятую, а не точку с запятой?
 
Здравствуйте

Помогите пожалуйста разобраться:
Я импортирую из csv файла где разделители запятые  (Данные -- Из Текста -- Импорт текстового файла ) данные на лист Excel ,
а затем когда сохраняю как csv (разделители запятые), то он сохраняеться с разделителями точка с запятой хотя в
"Параметры Excel-Дополнительно-Использовать системные разделители-Разделитель целой и дробной части" стоит запятая- тестировал с и без галочки - "Использовать системный разделитель".
Если сохранять макросом тогда будет запятая разделителем, но мне надо иметь возможноть вручную сохранять используя диалоговое окно "Сохранить как" и чтоб в csv был разделить запятая,
а не точка с запятой.
Как сохранить руками чтобы csv имел разделитель запятую?
Notapad запускаемый с VBA Excel кода , не видит создаваемого в Excel файла csv и сохраненного в папке
 
Здравствуйте

Помогите пожалуйста решить проблемы(у):

При использование оператора SendKeys у него как я понимаю низкий приоритет и он выполняеться в последнюю очередь :
Application.SendKeys "^w~~" - для закрытия книг лист которых редактировался выполняеться не в том месте в коде где прописан, а в конце .
Получаеться что макрос выполняеться до конца, а потом в конце только книги закрываються, что и имеет право на существование,
но только до той поры пока я не вызываю Notepad для выполнения в нем макроса. Notepad не видит файл который создан поточным
кодом. От SendKeys "^w~~" не могу отказаться так как мне необходимо чтобы csv файл сохранялся с разделителями точка с запятой(;;;";" а не ,,,;).
Код
Sub PlanetaExcel()
' Make "D" the current drive:
    ChDrive "D"

'смена текущего каталога на :
    ChDir "D:\TestTableQuery"

' Создание нового листа
    Workbooks.Add

   'Переменная пути к импортируемому файлу:
    Dim filePathCSV

'Рабочий код Вызова диалогового для пользовательского выбора файла и возврата значения для переменной
filePathCSV = Application.GetOpenFilename("CSV files(*.csv),*.csv", 1, "Выбрать файл CSV", , False)

' Условие проверки выбран ли файл и если не выбран то выполняеться команда выхода из процедуры:
If VarType(filePathCSV) = vbBoolean Then
    Exit Sub
End If

' Создание объекта - таблица запроса - импорт с файла данных для

With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & filePathCSV, Destination:=Range("$A$1"))
        .Name = "testfile.csv"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

       ' Do not display the message about overwriting the existing file.
       Application.DisplayAlerts = False

'Количество всех символов
Dim AllCharacters As Long
AllCharacters = Len(filePathCSV)

'Количество всех символов без слеша
Dim AllCharWithOutSlash As Long
AllCharWithOutSlash = Len(Replace(filePathCSV, "\", ""))

'Количество слешей в пути - что тоже что и последний слеш
Dim NSlashs As Long
NSlashs = AllCharacters - AllCharWithOutSlash

'Номер слеша с лева на право который будет третим с правой стороны , что определяет родительскую папку
Dim NSlashL As Long

If NSlashs > 2 Then
NSlashL = NSlashs - 2
ElseIf NSlashs = 2 Then
NSlashL = 2
ElseIf NSlashs = 1 Then
NSlashL = 1
End If

' Позиция (предпоследнего)слеша родительской папки импортируемого файла:
Dim NPosition As Long
NPosition = InStr(Application.WorksheetFunction.Substitute(filePathCSV, "\", "^", NSlashL), "^")

' Позиция последнего слеша в пути к файлу :
Dim NPositionEnd As Long
NPositionEnd = InStr(Application.WorksheetFunction.Substitute(filePathCSV, "\", "^", NSlashs), "^")
'******************************************************************
'Создание файла ExcelCore:
'Проверка на наличие папки с одинаковым именем и если нету одноименной папки, то создаеться новая папка TestExcel:
If Dir(Left(filePathCSV, NPosition) & "TestExcel\", vbDirectory) = "" Then
          MkDir Left(filePathCSV, NPosition) & "TestExcel\"
          End If

   'Сохранение файла с нужным именем в нужную папку
ActiveWorkbook.SaveAs FileName:=Left(filePathCSV, NPosition) & "TestExcel\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "ExcelCore.xlsx")

   'Альтернативный код : Close the workbook by using the following.
       ActiveWorkbook.Close
'******************************************************************
' Открытие ExcelCore; запуск макроса по подготовке с ExcelCore csv файла для Folder1

   Workbooks.Open FileName:= _
        Left(filePathCSV, NPosition) & "TestExcel\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "ExcelCore.xlsx") _
        , Origin:=xlWindows

' Запуск макроса по подготовке с ExcelCore csv файла для Folder1- для теста необязателен::
'    Application.Run "PERSONAL.XLSB!Folder1ForSvg"

    'Проверка на наличие папки с одинаковым именем и если нету одноименной папки, то создаеться новая папка:
If Dir(Left(filePathCSV, NPosition) & "8__________Folder1\", vbDirectory) = "" Then
          MkDir Left(filePathCSV, NPosition) & "8__________Folder1\"
          End If

    ActiveWorkbook.SaveAs FileName:= _
        Left(filePathCSV, NPosition) & "8__________Folder1\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "") & "Folder1.csv", FileFormat:= _
        xlCSV, CreateBackup:=False, local:=False

'******************************************************************
' Открытие ExcelCore; запуск макроса по подготовке с ExcelCore csv файла для Folder2

   Workbooks.Open FileName:= _
        Left(filePathCSV, NPosition) & "TestExcel\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "ExcelCore.xlsx") _
        , Origin:=xlWindows

        'Не работает для исправления ошибки связаной с запятой:
'        , Semicolon:=True
'''        , DataType:=xlDelimited,
'''        Local:=True

' Запуск макроса по подготовке с ExcelCore csv файла для Folder2- для теста необязателен:
'Application.Run "PERSONAL.XLSB!l_____Folder2_prepair_CSV"

'Проверка на наличие папки с одинаковым именем и если нету одноименной папки, то создаеться новая папка:
If Dir(Left(filePathCSV, NPosition) & "4__________Folder2_csv\", vbDirectory) = "" Then
          MkDir Left(filePathCSV, NPosition) & "4__________Folder2_csv\"
          End If

    ActiveWorkbook.SaveAs FileName:= _
        Left(filePathCSV, NPosition) & "4__________Folder2_csv\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "") & "Folder2.csv", _
        FileFormat:=xlCSV, _
        CreateBackup:=False, _
        local:=False
'******************************************************************
' Открытие ExcelCore; запуск макроса по подготовке с ExcelCore csv файла для Folder3

   Workbooks.Open FileName:= _
        Left(filePathCSV, NPosition) & "TestExcel\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "ExcelCore.xlsx") _
        , Origin:=xlWindows

' Запуск макроса по подготовке с ExcelCore csv файла для Folder3- для теста необязателен::
'    Application.Run "PERSONAL.XLSB!l_____Folder3_prepair_CSV"

    'Проверка на наличие папки с одинаковым именем и если нету одноименной папки, то создаеться новая папка:
If Dir(Left(filePathCSV, NPosition) & "3__________Folder3_csv\", vbDirectory) = "" Then
          MkDir Left(filePathCSV, NPosition) & "3__________Folder3_csv\"
          End If

    ActiveWorkbook.SaveAs FileName:= _
        Left(filePathCSV, NPosition) & "3__________Folder3_csv\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "") & "Folder3.csv", FileFormat:= _
        xlCSV, CreateBackup:=False, local:=False
'******************************************************************
' Открытие ExcelCore; запуск макроса по подготовке с ExcelCore csv файла для Folder4
   Workbooks.Open FileName:= _
        Left(filePathCSV, NPosition) & "TestExcel\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "ExcelCore.xlsx") _
        , Origin:=xlWindows

' Запуск макроса по подготовке с ExcelCore csv файла для Folder4 - для теста необязателен:
'    Application.Run "PERSONAL.XLSB!l_____Folder4_prepair_CSV"

    'Проверка на наличие папки с одинаковым именем и если нету одноименной папки, то создаеться новая папка:
If Dir(Left(filePathCSV, NPosition) & "6__________Folder4\", vbDirectory) = "" Then
          MkDir Left(filePathCSV, NPosition) & "6__________Folder4\"
          End If

    ActiveWorkbook.SaveAs FileName:= _
        Left(filePathCSV, NPosition) & "6__________Folder4\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "") & "Folder4.csv", FileFormat:= _
        xlCSV, CreateBackup:=False, local:=False
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
' Открытые книги при таком коде не закрываються если указан явно адресс для  Notepad или если указан или относительный путь как ниже то Notepad
Application.SendKeys "^w~~"
Application.SendKeys "^w~~"
Application.SendKeys "^w~~"
Application.SendKeys "^w~~"
Application.SendKeys "^w~~"

 Dim res As Variant
    Dim fileToOpen As String
    Dim nppPath As String

    fileToOpen = Left(filePathCSV, NPosition) & "Folder4\" & Replace(Mid(filePathCSV, NPositionEnd + 1), ".csv", "") & "Folder4.csv"
    MsgBox fileToOpen, , "Title file Path"
    nppPath = "C:\Program Files\Notepad++\notepad++.exe"

    res = Shell(nppPath & " " & fileToOpen, vbNormalFocus)

'На этом этапе возникает ошибка Notepad о том что файла не существует хотя в папке смотрю файл есть
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV

Application.SendKeys ("%a") ' --- запуск макроса в Notepad++
Application.SendKeys ("^s") ' --- сохранение изменений в открытом файле
Application.SendKeys ("%{F4}") '--- закрытие программы
    
 ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! всего будет создаваться 4 файла, но для простоты теста пока указываем один
End Sub
Изменено: vikttur - 30.09.2021 10:13:05
Сохранение файла в создаваемую новую папку что будет находиться в родительской папке файла импорта и с названием от импортируемого файла.
 
Здравствуйте

Как используя код VBA сохранить файл после выполнения импорта данных с указанного пользователем файла в папку которая являеться родительской для папки
в которой находиться файл для импорта данных (D:\TestTableQuery\testfile.csv- путь к файлу что содержит данные для импорта; D:\TestTableQuery\ - этот путь изменяеться(динамичен))    
там создать новую папку с названием Import1 и в нее сохранить файл excel с именем которое будет состоять из названия файла что выбирался пользователем для импорта и слов ExcelCore,
тоесть его название должно быть в данном случае testfileExcelCore, а путь сохранения  D:\Import1\testfileExcelCore.xlsx ?
Код
Sub TestTableQuary4()

' Make "D" the current drive
    ChDrive "D"

'смена текущего каталога на :
    ChDir "D:\TestTableQuery"

' Создание нового листа
    Workbooks.Add
    
Dim filePathCSV
filePathCSV = Application.GetOpenFilename("CSV files(*.csv),*.csv", 1, "Выбрать файл CSV", , False)

If VarType(filePathCSV) = vbBoolean Then
    Exit Sub
End If

With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & filePathCSV, Destination:=Range("$A$1"))
  
'        .CommandType = 0
        .Name = "testfile.csv"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

       ' Do not display the message about overwriting the existing file.
       Application.DisplayAlerts = False

       'Рабочий старый код:
'       ActiveWorkbook.SaveAs FileName:="D:\TestSave\" & MyFile
 
       ' Тестовый код:
       ActiveWorkbook.SaveAs FileName:="D:\TestSave\ExcelCore"

       ' Close the workbook by using the following.
       ActiveWorkbook.Close
End Sub
Изменено: vikttur - 22.09.2021 19:18:23
Использование окна выбора файла для использования пути к методу QueryTables.Add
 
Здравствуйте

Необходимо для метода QueryTables.Add  вместо "D:\TestTableQuery\testfile.csv" (в vba коде указана переменная filePathCSV  ) задать вызов диалогового окна "импорт текстового файла"
в котором пользователь будет выбирать файл для импорта данных, а значение пути будет присвоенно переменной или использована непосредственно в теле объекта QueryTables ? Важно в будующем
иметь доступ к пути D:\TestTableQuery\ и имени файла testfile.csv . Подскажите пожалуйста как правильно это реализовать?
Код
Sub TestTableQuery3()
'смена текущего каталога на :
    ChDir "D:\"

' Создание нового листа
    Workbooks.Add

'?????????????????   Как вместо "D:\TestTableQuery\testfile.csv" задать вызов диалогового окна "импорт текстового файла"
'                    в котором пользователь будет выбирать файл для импорта данных, а значение пути будет присвоенно переменной или использована непосредственно в
'                    теле объекта QueryTables ?

'                             vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
Const filePathCSV As String = "D:\TestTableQuery\testfile.csv"

'????????????????? Коректно ли использовать такой код : Const filePathCSV As String = Application.GetOpenFilename

'????????????????? Правильных ли являеться две строки, что ниже:

  With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT; & filePathCSV", Destination:=Range("$A$1"))

'       .CommandType = 0
'?????   vvvvvvvvvvvvvvvvvvvvv     .Name = "testfile.csv" обязательно ли использовать   ?
        .Name = "testfile.csv"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
Изменено: vikttur - 20.09.2021 21:47:43
Изменение направления определения номера вхождения для функции ПОДСТАВИТЬ
 
Доброго дня
Подскажите пожалуйста как для функции ПОДСТАВИТЬ изменить подсчет вхождений на противоположный - не с начала в конец , а с конца к началу.

Есть ячейка A1 с содержимым:
tag1;tag2;tag3;tag4;tag5
В B1 вставляем функцию по замене ; на ;supertag; и необходимо чтобы номер вхождения считался с конца тоесть ; до tag5 это 1 вхождение до tag4 второе вхождение и т.д.

Сама функция :
Код
= ПОДСТАВИТЬ(A1;";";";supertag;";2)

Мое решение это подсчитать количество символов ; и от него отнять номер вхождения и +1 .

Подскажите пожалуйста, есть ли другое решение отличающиеся от моего и если есть то какое ? Файл во вложение содержит тот же код что и сдесь.
По нажатию на кнопку отмена (Cancel) на UserForm необходимо чтобы было выведено сообщение
 
Доброго дня
Имею кнопку Отмена (Cancel) в UserForm c кодом в модуле
Код
Private Sub CancelButton1_Click()
Me.Hide
End Sub

Имею макрос который вызывает выше указанный UserForm и выполняет код:
Код
Sub MyMacros()
UserForm1.Show

' Если кнопка Отмена не была нажата , тогда выполняеться этот код
MsgBox ("Макрос  выполнялся")

' Если была нажата кнопка отмены то необходимо выполнить этот код а код выше не выполнять
MsgBox ("Макрос не выполнялся")

 Unload UserForm1
End Sub

С использованием чекбокса разобрался:
Код
Dim Revers As Boolean
     Revers = InsertingWords.CheckBoxRevers.Value
     If Revers = False Then
MsgBox ("Выполнение кода1")
Else 
MsgBox ("Выполнение кода2")
End If

, возможно ли также или аналогично сделать с кнопкой Отмена если да то как? Какие есть еще варианты решения этого?

По нажатию на кнопку отмена (Cancel) пользовательского окна (UserForm) необходимо что б основная часть макроса не выполнялась, а было выведено сообщение "Макрос не выполнялся".
Подскажите пожалуйста, как реализовать?
Как создать вызов одного диалогового окна вместо n-ого числа диаловых окон чтоб все значения переменных вводить только в нем?
 
Добрый день.
При выполнение макроса в Excel используется несколько диалоговых окон для задания переменным значений .
После ввода значения в первом диалоговом окне и нажатии кнопки Ok появляется новое окно и так несколько раз.
Подскажите пожалуйста,
как создать вызов одного диалогового окна вместо n-ого числа диалоговых окон чтоб все значения переменных вводить только в нем?

Мой пример кода:

Код
Dim variable1 As Stringvariable1 = InputBox("Prompt:Text1", "Title1", "default")
        
        
Dim variable2 As String
variable2 = InputBox("Prompt:Text2", "Title2", "default")


 Dim variable3 As Integer
variable3 = InputBox("Prompt:Text3", "Title3", "default")
      
       
               
 Dim variable4 As Long
 variable4 = Application.InputBox("Prompt:Text4", "Title4", "default")
        
        
 Dim variable5 As Long
variable5 = Application.InputBox("Prompt:Text5", "Title5", "default")
        

        Dim variable6 As Long
 variable6 = Application.InputBox("Prompt:Text6", "Title6", "default")
Как назначить переменной числовое значение функции
 
Подскажите пожалуйста как назначить переменной числовое значение функции
=LEN(R2C2) - LEN(SUBSTITUTE(R2C2,"";"",""""))
не помещая функцию в ячейку .

Это необходимо для того что бы подсчитав с помощью функции количество определенных символов в ячейке использовать дальше полученную переменную в условие IF Then Else
(Если количество символов в определенной ячейке, что определяеться функцией при сравнение с другой переменной меньше, выполняеться действие 1 ,
в противном случае выполняеться действие 2 )

код VBA для выполнения в ячейке:
Код
ActiveCell.FormulaR1C1 = "=LEN(R2C2) - LEN(SUBSTITUTE(R2C2,"";"",""""))"

Тестовый упрощенный код которым который работает:
Код
Dim quantitySymbols As Integer

quantitySymbols = Evaluate("=SUM(3+4)")
MsgBox (quantitySymbols)

Когда вставлял в тестовый упрощенный код вместо =SUM(3+4) свою функцию получаю ошибку "Run-time error '13' Type mismatch" как я понимаю из-за неправильного типа переменной ,
но меняя тип переменной  я так и результата положительного не добился.
Также для преобразования типа данных пытался использовать функцию CInt()

Рабочий неудавшийся код
Код
Dim quantitySymbols As Integer

quantitySymbols = Evaluate("=LEN(R2C2) - LEN(SUBSTITUTE(R2C2,"";"",""""))")
MsgBox (quantitySymbols)

Файл excel во вложение можно использовать, но это не принципиально так как можно в новом документе для теста в ячейку B2 поместить любой текст с ; .

Прошу помощи
Определение названия столбца как переменной с предварительным заданием ее в диалоговом окне
 
Доброго дня

Стоит задача определять при запуске макроса какую колонку обрабатывать и какие ячейки.Пример (код VBA) :
Код
     'Удаление формул в B:B
Columns("B:B").Select
Selection.ClearContents 

и / или

Код
Range("B1").Select

а необходимо при определенных условиях вместо B чтобы в коде было D или E и т. д.

возможно ли это сделать и как?

я пробовал следующим образом:

Код
'Объявление переменной для ввода названия колонки
        Dim ncolumn As String

' Назначение переменной ncolumn значения вводимого в диалоговом окне

        ncolumn = InputBox("Prompt:Input name column", "Введите название колонки которая будет обрабатываться ", "D"

но не знаю как правильно вставить переменную в :

Код
Columns("B:B").Select
и в
Код
Range("B1").Select

 и в

Код
Columns.Item(2).Select

вместо 2 поставить значение переменной ncolumn (возможно использовать вместо букв алфавита числа колонок но не желательно).

Есть такая формула:
Код
ActiveCell.FormulaR1C1 = _
        "=IF(RIGHT(IF(RC[-4]=0,"""",IFERROR(LEFT(TRIM(RC[-4]),(FIND(CHAR(1),SUBSTITUTE(TRIM(RC[-4]),""" & sepsymb & """,CHAR(1)," & ntags & " )))),RC[-4])),1)=""" & sepsymb & """,IF(RC[-4]=0,"""",IFERROR(LEFT(TRIM(RC[-4]),(FIND(CHAR(1),SUBSTITUTE(TRIM(RC[-4]),""" & sepsymb & """,CHAR(1), " & ntags & " ))-1)),RC[-4])),IF(RC[-4]=0,"""",IFERROR(LEFT(TRIM(RC[-4]),(FIND(CHAR(1),SUBSTITUTE(TRIM(RC[-4]),""" & sepsymb & """,CHAR(1), " & ntags & " )))),RC[-4])))"
где
Код
RC[-4]
относительная ссылка как ее поменять под условия абсолютного значения переменной ?

Зараннее спасибо всем кто поможет.
Удаление всех дубликатов слов в колонке документа csv файла
 
Добрый день

Подскажите пожалуйста, как удалять дубли слов в колонке ?  (кроме как в ручную :) )
Каким механизмом лучше воспользоваться?
Страницы: 1
Наверх