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

Страницы: 1 2 След.
Часть букв в другой кодировке, Сохраняю в csv часть букв в странной кодировке
 
Цитата
Anatoliy Pychev написал:
Через код все отлично получаетсятолько у Вас в содержимом присутствуют кавычки, их надо экранировать или заменитьВо вложении пример который создает CSV файл в формате UTF-8 (см. код)Для примера, я кавычки заменил на обратный апострофПолучилось ВОТ
За макрос спасибо, перепишу его под себя.
Часть букв в другой кодировке, Сохраняю в csv часть букв в странной кодировке
 
Цитата
Андрей VG написал:
Справа внизу, случайно, надписи Macintosh нет?
Я сразу из Macintosh в UTF-8 перекодировал. А нужно было сначала в Windows 1251 а потом уже UTF-8.
Надо про кодировки почитать. Спасибо.
Часть букв в другой кодировке, Сохраняю в csv часть букв в странной кодировке
 
День добрый. Никогда с таким не сталкивался. В excel русские символы отображаются нормально, но при сохранении в csv или txt часть русских символов в другой кодировке. Копировал из excel в notepad++ игрался с кодировками вроде одна кодировка ничего понять не могу.
Заранее спасибо. Файл в приложении. Мне нужно сохранить в csv. Пробовал через openoffice всё тоже самое.
Код
"Ѕыло <a class=""dotted-link"" href=""/pro-vremja/"" title=""јнекдоты про врем¤"">врем¤</a>, когда ¤ очень хотел <a class=""dotted-link"" href=""/pro-jelanie-zhenitsya/
Изменено: anatolij1984 - 27.04.2018 03:20:08
Заменить часть текста в конце макросом
 
Sobes,Спасибо. маленько подпилю и будет в самый раз.

gling, Спасибо конечно но информации очень много для обработки несколько сотен тысяч строк. Формулами нереально долго. Даже не долго, а будет тормозить.
Изменено: anatolij1984 - 16.03.2017 19:49:43
Заменить часть текста в конце макросом
 
Добрый день.
Есть текст к примеру
ыввывывывывыв,<br>fggfgfgfggfgfg<br>ыфыфыфро<br>
Как можно макросом заменить только последний тег  <br>
Привязки к тегу нет, может быть любой текст.

Заранее спасибо
Ошибка при заполнении листа из массива.
 
Через цикл работает. Но долго. Информации много.
Ошибка при заполнении листа из массива.
 
Тоже самое. Также не работает, проверил
0 или 1 в ячейки по условиям, макрос
 
На листе база цифра 5 это номер нужной колонки, какую введёте там и выведется !
0 или 1 в ячейки по условиям, макрос
 
Наверно это нужно
0 или 1 в ячейки по условиям, макрос
 
Не понятно что вам нужно сделать в итоге !
Если бы вы грамотно изложили условие, то вам скорее всего уже бы ответили.
0 или 1 в ячейки по условиям, макрос
 
В каком случае 0 ?
Ошибка при заполнении листа из массива.
 
В общем проверил если ДЛСТР  < примерно 8000 символов  то работает больше нет ! Хотя судя по

Общее количество знаков в ячейке   32 767 знаков  должно работать !

Ошибка при заполнении листа из массива.
 
Цитата
Sanja написал:
Файл-пример показали бы
Даже так работать не хочет. Скорее всего какое то ограничение на кол-во символов в ячейке ! Как его обойти ?
Ошибка при заполнении листа из массива.
 
Цитата
Sanja написал: arrObsh = addr_vvod.Range("A1:F" & kol_tov_vvod).Value
В массив данные вносятся без проблем
А ругается на addr_vvod.Range("A1:F" & kol_tov_vvod) = arrObsh
Цитата
Sanja написал: В одной ячейке?
Статьи во всех ячейках. При этом часть данных вносится до строки 14699 а дальше пусто
Код
Sub sozdat_listi()
 
Dim arrObsh()
Dim addr_vvod As Worksheet
Set addr_vvod = Workbooks("111.xlsm").Worksheets("Лист1")

Dim addr_as As Worksheet
Set addr_as = Workbooks("111.xlsm").Worksheets("Лист2")
 
Dim kol_tov_vvod As Long
kol_tov_vvod = addr_vvod.Cells(Rows.Count, 1).End(xlUp).Row
 
arrObsh = addr_vvod.Range("A1:F" & kol_tov_vvod).Value
 
addr_as.Range("A1:F" & kol_tov_vvod) = arrObsh
End Sub
Ошибка при заполнении листа из массива.
 
Добрый день.  Есть код который просто вносит данные с листа в массив и обратно, который работает если в таблице числа. Но если же в таблице в столбце F статьи (800-2000 знаков ) то он выводит ошибку "Application-defined or object-defined error". Может как то правильно массив нужно объявить. Весь инет уже перерыл. Строк в таблице 50000. Что может быть ? Заранее спасибо.
Код
Sub sozdat_listi()

Dim arrObsh()
Dim addr_vvod As Worksheet
Set addr_vvod = Workbooks("111.xlsm").Worksheets("111")

Dim kol_tov_vvod As Long
kol_tov_vvod = addr_vvod.Cells(Rows.Count, 1).End(xlUp).Row

arrObsh = addr_vvod.Range("A1:F" & kol_tov_vvod)

addr_vvod.Range("A1:F" & kol_tov_vvod) = arrObsh
End Sub
Поиск слова в тексте макросом
 
Kuzmich,Спасибо большое ! То что надо.
Поиск слова в тексте макросом
 
Добрый день.  

В макросам не сильно силён но что то умею. В данном случае нужно подсказать направление куда двигаться.
В столбце A  в каждой ячейке анекдот. Мне нужно их разобрать по категориям, максимально автоматизировав работу.

К примеру я могу сделать это так выделить столбец потом поиск слова "Вовочка" и напротив анекдота в столбце B поставить цифру один. Потом отсортировать по столбцу B  и у меня будут все анекдоты про вовочку.
Как это можно сделать макросом ? Как я думаю. Через split разбить анекдот на массив а потом сравнивать каждый элемент массива с поисковым словом. Может есть ищё какие нибудь варианты ?

Заранее спасибо !
Относительный путь к файлу который на 2 категории выше
 
Спасибо. Буду разбираться !
Относительный путь к файлу который на 2 категории выше
 
Добрый день.

Структура такая

Папка1
-----------Файл1
-----------Папка2
----------------------Папка3
---------------------------------Файл3
----------------------Папка4
---------------------------------Файл4
----------------------Папка5
---------------------------------Файл5

Как правильно прописать путь от файлов 3,4,5  к файлу1 нужен относительный путь ?

Пробовал по разному не получается ThisWorkbook.Path = "\..\Файл1"  

Заранее спасибо.
В VBA поставить точку вместо запятой
 
Спасибо. Попробую. Возможно на апостроф будет материться.
В VBA поставить точку вместо запятой
 
Формат общий, при изменении работает.   Но менять формат нельзя - файл для импорта на сайт, при изменений глючит, такой там корявый обработчик.

Если мы в ручную при общем формате вбиваем 0.6 то отображается же правильно. Значит и макросом можно, наверно.
В VBA поставить точку вместо запятой
 
Добрый день.   Смешно, но не получается. Запилил макрос на 400 строк. А какую то ерунду побороть не могу.

Мне нужно чтобы записалось как 0.6 а не 0,6. Заношу в массив 0.6 как string, видит в окне locals как string.  А выводит в ячейку всё равно с запятой.
Пробовал 0.6 & ""  - не работает,   str(0.6) тоже не работает.    В общем мне нужно чтобы макрос ниже заработал и выдал мне с точкой.
Формат ячейки менять нельзя. Специфика файла.
Код
Public Sub 111()
Cells(1, 1) = 0 & "." & 6
End Sub
Изменено: anatolij1984 - 11.11.2016 19:24:16
Добавить массив в словарь
 
Может кому пригодится
Код
Type Tovari
    id As Long
    Адрес As String
    Опт As Double
    Розница As Double
End Type

Public Sub словарь()
Dim Tovar() As Tovari
kol_tov_ish = ish_dan.Cells(Rows.Count, 1).End(xlUp).Row ' количество товаров на листе исходные данные
ReDim Tovar(1 To kol_tov_ish - 2)

Dim slov: Set slov = CreateObject("Scripting.Dictionary")  ' Создаем словарь

For i = 1 To (kol_tov_ish - 2)
    Tovar(i).id = ish_dan.Cells(i + 2, 1)
    Tovar(i).Адрес = ish_dan.Cells(i + 2, 8)
    Tovar(i).Опт = ish_dan.Cells(i + 2, 7)
    Tovar(i).Розница = ish_dan.Cells(i + 2, 6)
     
    slov.Add Item:=i, Key:=Tovar(i).id ' Добавляем массив товаров в словарь
Next

'---------------------------------- вывод на лист импорта
kol_tov_imp = import.Cells(Rows.Count, 1).End(xlUp).Row ' количество товаров на листе импорт

For i = 1 To (kol_tov_imp)
    import.Cells(i, 2) = Tovar(slov.Item(import.Cells(i, 1).Value)).Адрес
    import.Cells(i, 3) = Tovar(slov.Item(import.Cells(i, 1).Value)).Опт
    import.Cells(i, 4) = Tovar(slov.Item(import.Cells(i, 1).Value)).Розница
Next i
End Sub
Файл приложил
Изменено: anatolij1984 - 03.11.2016 18:16:13
Добавить массив в словарь
 
Цитата
Казанский написал:
Потом slov(x) вернет индекс массива, соответствующий ID=x, а по нему из массива можно получить все остальные данные.
Идею понял. Спасибо.
Добавить массив в словарь
 
Решил упростить но от этого не легче.  Запихал каждую строку товара в массив.


Код
Public Sub словарь()
kol_tov_ish = ish_dan.Cells(Rows.Count, 1).End(xlUp).Row ' количество товаров на листе исходные данные

ReDim Tovar(1 To kol_tov_ish - 2)

Dim slov: Set slov = CreateObject("Scripting.Dictionary")  ' Создаем словарь
Dim asdf(1 To 27)
For i = 1 To (kol_tov_ish - 2)

id = ish_dan.Cells(i + 2, 1)
    For j = 1 To 27
      asdf(j) = ish_dan.Cells(i + 2, j + 1)
    Next
slov.Add Item:=asdf, Key:=id ' Добавляем массив товаров в словарь

Next

'---------------------------------- вывод на лист импорта

kol_tov_imp = import.Cells(Rows.Count, 1).End(xlUp).Row ' количество товаров на листе импорт

For i = 1 To (kol_tov_imp)
    import.Cells(i, 2) = slov.Item(import.Cells(i, 1).Value)
Next i

End Sub

В данный момент эта
Код
import.Cells(i, 2) = slov.Item(import.Cells(i, 1).Value)
строка выводит первый элемент массива.(производитель)

Как вывести к примеру 2 элемент ? В таблице это будет категория.
Добавить массив в словарь
 
Извиняюсь. Неправильно выразился.   Не массив, а элемент массива в виде пользовательской переменной.   Как то так

Выше поправил.
Изменено: anatolij1984 - 03.11.2016 17:59:44
Добавить массив в словарь
 
Компилятор ругается матом  
Код
Only user-defined types defined in public object modules can be coerced to or from a variant or passed to late-bound functions
Добавить массив в словарь
 
Кроме как
Код
    .Add .Count, Array(11, 22, 33) ' добавляем элемент типа массив
Ничего нет !
Добавить массив в словарь
 
Добрый день. Сильно не пинайте, две недели как начал изучать vba.

Пытаюсь разобраться со словарём, что то не доходит.
Ниже код рабочий.
Код
Type Tovari
    id As Long
    Адрес As String
    Опт As Double
    Розница As Double
End Type

Public Sub словарь()
Dim Tovar() As Tovari

kol_tov_ish = ish_dan.Cells(Rows.Count, 1).End(xlUp).Row ' количество товаров на листе исходные данные
ReDim Tovar(1 To kol_tov_ish - 2)
Dim slov: Set slov = CreateObject("Scripting.Dictionary")  ' Создаем словарь

For i = 1 To (kol_tov_ish - 2)
    Tovar(i).id = ish_dan.Cells(i + 2, 1)
    Tovar(i).Адрес = ish_dan.Cells(i + 2, 8)
    Tovar(i).Опт = ish_dan.Cells(i + 2, 7)
    Tovar(i).Розница = ish_dan.Cells(i + 2, 6)

    slov.Add Item:=Tovar(i).Адрес, Key:=Tovar(i).id ' Добавляем массив товаров в словарь
Next

'---------------------------------- вывод на лист импорта
kol_tov_imp = import.Cells(Rows.Count, 1).End(xlUp).Row ' количество товаров на листе импорт

For i = 1 To (kol_tov_imp)
    import.Cells(i, 2) = slov.Item(import.Cells(i, 1).Value)
Next i

End Sub
Добавить ключ и какой то столбец у меня получается.
А хотелось бы добавить ключ и элемент массива в виде пользовательской переменной  Tovar(i).    Грубо говоря вместо  
Код
Tovar(i).Адрес            Tovar(i)

Ну и как то с учётом изменений вывести это
Код
import.Cells(i, 2) = slov.Item(import.Cells(i, 1).Value)

Как это сделать. Заранее спасибо.
Изменено: anatolij1984 - 03.11.2016 17:25:07
Не работает ДВССЫЛ при вставке в источник списка данных именованного диапазона
 
JayBhagavan, Спасибо ! Реально работает, осталось только как то в этом разобраться !  
Страницы: 1 2 След.
Наверх