Чтоб совсем задача была понятна, прикрепил два файла. В файле арт 2 солбца: артикул и количество купленных. В первом отображается артикул, во второй столбец вставлена функция Update(Адрес ячейки), которая должна сравнивать значение полученной ячейки со всеми значениями в столбце Articules из файла sold.xlsx и при нахождении соответствия должна выдавать соответствующее найденному артикулу значение из столбца Items sold (того же файла sold.xlsx). Как мне это сделать? Очень прошу помочь!
Public Sub a() Dim NameOfFile As String Dim ArtRangeName As String Dim QualityRangeName As String Dim Temp set Temp = Workbooks.Open ("Daniel AW12 (Textile 69) 1st invoice - 1st shipment.xlsx") For i = 2 To 500 ArtRangeName = "a" & i QualityRangeName = "j" & i Articul(i) = Temp.Worksheets(1).Range(ArtRangeName).Text Quality(i) = Temp.Worksheets(1).Range(QualityRangeName).Text Next i Temp.Close End Sub ________________________ khafizovtt@gmail.com{/post}{/quote}
не получается. пишет значение Nothing при наведении на Temp при исполнении в пошаговом режиме.
Предполагая критику со стороны сторожил этого проекта, все же задам такой вопрос: у меня есть открытая таблица, в ней я создал функцию, которая должна открывать другой документ, собирать из него данные и далее их неким образом обрабатывать. Так вот по ниже приведенному коду, функция собирает данные из активного листа, а не из открытого с помощью оператора Workbooks.Open Как мне собрать данные именно из открытого листа?
Public Articul(500) As String Public Quality(500) As String Public Function Update(NameOfCell As String) As Integer Call a For i = 2 To UBound(Articul) If NameOfCell = Articul(i) Then Update = Quality(i) Exit Function End If Next i Update = 0 End Function
Public Sub a() Dim NameOfFile As String Dim ArtRangeName As String Dim QualityRangeName As String Dim Temp Workbooks.Open ("Daniel AW12 (Textile 69) 1st invoice - 1st shipment.xlsx") For i = 2 To 500 ArtRangeName = "a" & i QualityRangeName = "j" & i Articul(i) = ActiveSheet.Range(ArtRangeName).Text Quality(i) = ActiveSheet.Range(QualityRangeName).Text Next i Workbooks.Close End Sub
Ребята, помогите найти контрол как на картинке. Очень нужно. Слева должны быть не редактируемые ячейки, а справа изменяемые (значения и ширина столбцов). Может быть кто-то подскажет аналоги?
Подскажите пожалуйста, как можно поступить в моем случае? Необходимо: - находясь в Excel извлечь данные из файла баз данных Access, но с помощью VBA. Т.е. у меня по нажатию кнопки в Excel должны импортироваться данные из б/д в таблицу Excel. Но данные должны импортироваться по фильтру, т.е. чтобы находило определенную строчку в б/д и импортировало именно ее.
Как отоформатировать ячейку со значением, например, 2,68298653610771E-06 в ячейку со значением 2,682*10-6? Если подитожить: -нужно, чтобы отображалось одна цифра и дальше запятая -нужно, чтобы Е-06 отображалось в виде 10-6
{quote}{login=}{date=17.05.2010 11:52}{thema=}{post}А можно определять серийный номер диска С
Sub GetDrvSerialNumber() 'Определяем номер серийного диска С на вашем компьютере MsgBox Hex$(CreateObject("Scripting.FileSystemObject").GetDrive("C").SerialNumber) End Sub
допустим он будет BE164BD1 тогда можно написать такой код и поместить его в модуль ЭтаКнига (ThisWorkbook)
Private Sub Workbook_Open() If Hex$(CreateObject("Scripting.FileSystemObject").GetDrive("C").SerialNumber) <> BE164BD1 Then ThisWorkbook.Close False End If End Sub{/post}{/quote}
{quote}{login=R Dmitry}{date=17.05.2010 11:53}{thema=Re: Как защитить книгу Excel?}{post}{quote}{login=ancheville}{date=17.05.2010 11:36}{thema=Как защитить книгу Excel?}{post}Подскажите пожалуйста, можно ли в VBA (Excel) написать какую-то функцию, которая проверяла бы, например, номер процессора или еще какой-то уникальный параметр и, если он не совпадает с допустимым диапазоном, то книга не запускалась бы.{/post}{/quote} вот вам пример где то на форуме нашел admin admin{/post}{/quote}
{quote}{login=Юрий М}{date=17.05.2010 11:46}{thema=}{post}Sub SpecificationsProcessor() Dim strComputer As String Dim objWMIService As Object, colProcessor As Object, objProcessor As Object strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcessor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor") For Each objProcessor In colProcessor Debug.Print "ProcessorId: " & objProcessor.ProcessorId MsgBox "ProcessorId: " & objProcessor.ProcessorId Next End Sub{/post}{/quote}
{quote}{login=R Dmitry}{date=17.05.2010 11:45}{thema=Re: Как защитить книгу Excel?}{post}{quote}{login=ancheville}{date=17.05.2010 11:36}{thema=Как защитить книгу Excel?}{post}Подскажите пожалуйста, можно ли в VBA (Excel) написать какую-то функцию, которая проверяла бы, например, номер процессора или еще какой-то уникальный параметр и, если он не совпадает с допустимым диапазоном, то книга не запускалась бы.{/post}{/quote} есть пример с ip , есть с мас адресом сетевой карты, есть с кодом раздела вам что по душе?{/post}{/quote}
Мне интересен пример с mac-адресом сетевой карты и с кодом раздела...
Подскажите пожалуйста, можно ли в VBA (Excel) написать какую-то функцию, которая проверяла бы, например, номер процессора или еще какой-то уникальный параметр и, если он не совпадает с допустимым диапазоном, то книга не запускалась бы.
Подскажите, что нужно сделать, чтобы макрос заполняя ячейки писал м2 как "м"+2 (как верхний индекс). Пробовал записать макрос и заполнять ячейки, но при воспроизведении его пишет "м?"...
{quote}{login=EducatedFool}{date=12.05.2010 10:52}{thema=}{post}Здесь есть примеры функций для работы с текстовыми файлами (чтения и записи данных) http://excelvba.ru/code/txt{/post}{/quote}
{quote}{login=Hugo}{date=12.05.2010 09:05}{thema=}{post}За ночь собрал пример :) Цикл по контролам без привязки к номеру (For Each), может есть смысл переделать, как KL подсказал.{/post}{/quote}
Hugo, огромное спасибо за пример. С его помощью у меня все получилось!
Подскажите пожалуйста, как записать в txt-файл данные из Textbox1 to Textbox100. Причем нужно записать все значения в одну строчку с интервалом 10 символов (от первого предыдущего значения). Например: значение Textbox1 в самом начале строки, далее значение Textbox2 записывается через 10 символов вправо от начала строки, далее значение Textbox3 записывается через 20 символов вправо от начала строки, далее значение Textbox4 записывается через 30 символов вправо от начала строки. Извините за такое косоязычие в формировании задачи. У меня очень мало опыта, а поставленные задачи нужно решать. И еще вопрос: как сделать чтение в таком же виде?
Подскажите пожалуйста, как сделать перебор имен контролов с помощью цикла. Например: у меня есть Textbox1.value, Textbox2.value и так далее до 100. Как мне сделать так, чтобы я мог назначить одно и то же значение всем Textbox без присвоения каждому из них значения вручную в коде программы? Т.е. могу ли я написать что-то подобное:
Подскажите, пожалуйста, контрол таблицу, чтобы можно было изменять ширину столбцов мишкой, а также при нажатии на ячейку в нее можно было бы вводить значения.
Подскажите пожалуйста, какие Controls изображены на картинке в красной и синей рамках. Очень нужны эти контролы, но не знаю как они называются. Может быть кто-то подскажет аналогичные контролы? В основном меня интересует контрол в красной рамке. А именно, чтобы была таблица, первая строка и ряд которой были бы не редактируемые, а во все остальные можно было бы вносить изменения. И чтобы можно было бы обращаться к каждой ячейке и извлекать из нее значения.
Не совсем понял вопрос. Т.к. у меня нет combobox'ов. Но очень нужен контрол. Могу ли я в listbox контроле сделать так, чтобы столбцы изменяли свою ширину?
{quote}{login=ancheville}{date=23.01.2010 03:14}{thema=}{post}Скриншот - http://i055.radikal.ru/1001/7e/6781082064ce.jpg{/post}{/quote} Файл с расширением .xls не качать. Он не содержит информации
{quote}{login=Юрий М}{date=23.01.2010 01:58}{thema=}{post}Судя по всему, Вам нужен или ListBox или ComboBox. Для более полного ответа требуется уточнение: "чтобы при нажатии на Control выделялась одна строка, а данные были выведены в несколько столбцов" 1. Строка должна выделяться ещё и на листе? 2. Сколько столбцов должно отображаться в элементе управления? 3. Что Вы понимаете под изменением ширины столбца? 4. В каком виде должна выводиться информация о номере строки? 5. Про какую строку разговор - про ту, что в контроле или про ту, что на листе?{/post}{/quote} Речь идет исключительно про userform и контролы (про листы Excel речь не идет). Мне нужно представить некую каталожную информацию. Например, про утюги. Мне нужно чтобы в каждой строчке отображалась модель, мощность и стоимость. Соответственно, мне нужно, чтобы каждая строка содержала 3 столбца: модель, мощность и стоимость. Мне хотелось бы, чтобы у меня автоматически изменялась ширина столбца в зависимости от того, сколько символов введено в ячейку. Номер строки мне нужен для того, чтобы по нажатию на определенную строку у меня извлекались данные именно про эту модель утюга.