Доброго времени суток! Помогите найти значение определенного столба по условию в другом столбце. Т.е. у нас есть таблица (4 столбца). № - порядковый номер (не всегда подряд, может перескакивать) ID - уникальное значение (почти уникальное, т.к. ID меняется только в зависимости от наименования аппаратуры, а если названия одинаковые, то и ID будет одинаковым у них) Итог - в этом столбце на один ID только одно значение больше 0, остальные все нули (но в разном порядке, НЕ обязательно последний или первый 0)
Задача: 1) Нужно найти на один ID значение больше 0 из столбца "Итог"; 2) Нужно найти № у того ID у которого в столбце "Итог" значение больше нуля
Добрый день. Есть две таблицы, одна | ДАТА | Диапазон ОТ | Диапазон ДО | , а другая просто значения подряд в диапазонах.
Подскажите, пожалуйста, как сопоставить значения из одной таблицы в другую. Т.е. чтоб во второй таблице к значению из диапазона сопоставить дату. Пример в приложении.
Здравствуйте! Нашел такой код на этом форуме по транслиту текста:
Код
Sub Translit()
Dim Rus As Variant
Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
"л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
"щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
"Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _
"С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")
Dim Eng As Variant
Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _
"k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
"sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _
"E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
"S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")
For Each Txt In Range(Selection.Address)
For I = 1 To Len(Txt)
с = Mid(Txt, I, 1)
flag = 0
For J = 0 To 65
If Rus(J) = с Then
outchr = Eng(J)
flag = 1
Exit For
End If
Next J
If flag Then outstr = outstr & outchr Else outstr = outstr & с
Next I
Txt.Value = outstr
outstr = ""
Next Txt
End Sub
Подскажите как эту функцию сделать для кнопки на форме? Что тут не так? Я не понимаю почему не работает. Ругается на строку с = Mid(Txt, I, 1). Хотя через ВИД-МАКРОСЫ все работает.
Здравствуйте! Хотелось бы объединить все выбранные книги в один лист. Нашел код на этом же сайте, но уже в Архиве, и были эти же вопросы, но отвечали походу в ЛС и поэтому ответов там нет. Были только после вопросов сразу же "Спасибо, все получилось". Просто нужно немного изменить этот код.
Ну и собственно вопросы: 1) Как объединить все выбранные книги Excel (*.xls и *.xlsx), пробывал изменить на *.xls*, но почему то ругается на *.xlsx 2) Как выбрать с какой строки копировать? В объединяемых книгах есть шапки таблиц, которые желательно не объединять. 3) Ну и если есть возможность, то как при сохранении сделать выпадающий список по выбору расширения сохраняемой книги (*.xls или *.xlsx)
Код
Sub Объединение_множества_книг_в_один_лист()
Const strStartDir = "c:\test" 'папка, с которой начать обзор файлов
Const strSaveDir = "c:\test\result" 'папка, в которую будет предложено сохранить результат
Const blInsertNames = True 'вставлять строку заголовка (книга, лист) перед содержимым листа
Dim wbTarget As New Workbook, wbSrc As Workbook, shSrc As Worksheet, shTarget As Worksheet, arFiles, _
i As Integer, stbar As Boolean, clTarget As Range
On Error Resume Next 'если указанный путь не существует, обзор начнется с пути по умолчанию
ChDir strStartDir
On Error GoTo 0
With Application 'меньше писанины
arFiles = .GetOpenFilename("Excel Files (*.xls), *.xls", , "Объединить файлы", , True)
If Not IsArray(arFiles) Then End 'если не выбрано ни одного файла
Set wbTarget = Workbooks.Add(template:=xlWorksheet)
Set shTarget = wbTarget.Sheets(1)
.ScreenUpdating = False
stbar = .DisplayStatusBar
.DisplayStatusBar = True
For i = 1 To UBound(arFiles)
.StatusBar = "Обработка файла " & i & " из " & UBound(arFiles)
Set wbSrc = Workbooks.Open(arFiles(i), ReadOnly:=True)
For Each shSrc In wbSrc.Worksheets
If IsNull(shSrc.UsedRange.Text) Then 'лист не пустой
Set clTarget = shTarget.Range("A1").Offset(shTarget.Range("A1").SpecialCells(xlCellTypeLastCell).Row, 0)
If blInsertNames Then
clTarget = ">>> " & wbSrc.Name & " -- " & shSrc.Name
Set clTarget = clTarget.Offset(1, 0)
End If
shSrc.UsedRange.Copy clTarget
End If
Next
wbSrc.Close False 'закрыть без запроса на сохранение
Next
.ScreenUpdating = True
.DisplayStatusBar = stbar
.StatusBar = False
On Error Resume Next 'если указанный путь не существует и его не удается создать,
'обзор начнется с последней использованной папки
If Dir(strSaveDir, vbDirectory) = Empty Then MkDir strSaveDir
ChDir strSaveDir
On Error GoTo 0
arFiles = .GetSaveAsFilename("Результат", "Excel Files (*.xls), *.xls", , "Сохранить объединенную книгу")
If VarType(arFiles) = vbBoolean Then 'если не выбрано имя
GoTo save_err
Else
On Error GoTo save_err
wbTarget.SaveAs arFiles
End If
End
save_err:
MsgBox "Книга не сохранена!", vbCritical
End With
End Sub
Есть коды определения разных цветов текста в ячейке. Нужно в соседний столбец скопировать значение другой ячейки с разными цветами (вместо слов "Ложь" и "Истина").
Код
Function HasDifColor(rg As Range) As Boolean
HasDifColor = IsNull(rg.Cells(1).Characters.Font.Color)
End Function
или
Код
Public Function hasSeveralTextColors(txtCell As Range) As Boolean
severalColors = False
With txtCell.Cells(1)
firstColor = .Characters(1, 1).Font.ColorIndex
For i = 2 To .Characters.Count
If .Characters(i, 1).Font.ColorIndex <> firstColor Then
severalColors = True
Exit For
End If
Next i
End With
hasSeveralTextColors = severalColors
End Function
Нужно определить формулой, есть ли в ячейке текст разного цвета. Например в ячейке А1 текст черного цвета, а одно слово красного, тогда в ячейке B1 текст "Да, есть" иначе "Нету". Спасибо большое!
Здравствуйте уважаемые программисты! Имеется таблица, в первом столбце идут значения в любом количестве одинаковых значений (может быть и одна строка и 10 и т.д.), а втором столбце их значения. Нужно чтоб остались по одному значению первого столбца с подсчитанной медианой (одинаковых значений первого столбца) во втором столбце. Желательно макросом.
Access-ом пользоваться не умею почти (не предлагать).
Здравствуйте! Проблема такая, нужно из одной таблицы сделать объединенную таблицу макросом. Т.е. есть первая таблица в котором содержится 3 столбца. в итоговой таблице нужно: 1) Посмотреть одинаковые значение в первом столбце 2) Посмотреть одинаковые значения в 3 столбце 3) Записать цифры второго столбца ОТ и ДО.
Можно объединенную таблицу и в новой книге сделать или в новом листе, главное чтоб она была)))
Здравствуйте. Помогите сделать макрос генерирующий случайные числа на указанное количество строк (в форме) со значением от 0,5 до 500 (можно и больше 500) с условием, что среднее значение всех строк не больше (можно меньше, но не больше) указанного в форме. Файл пример прикрепил.
Здравствуйте, помогите разобраться с условным форматированием. Хотелось бы, чтоб форматирование происходило на столбце "B". А условие такое: Если значение меньше 1000 и не меньше или равно 4, то проверяется значение ячейки, если значение ячейки не равно столбцу L*4 (умноженную на 4) на строку выше, то закрасить красным. Если просто вводить формулу в соседних ячейках, то почти получается (=ЕСЛИ(B6<1000;ЕСЛИ(B6<>L5*4;"Лишнее";"");"")), но условие меньше или равно 4 тоже не смог)) Пример выложил (Два листа "Как есть" и "Как хотелось бы")
Здравствуйте. Проблема такая, что при открытии файлов excel открывается два окна, одно окошко то что нужно и одно из них пустое (Personal.xlsb), т.к. он скрытый (Вид-Скрыть). В личной книге макросов есть нужные макросы, поэтому удалить эту книгу не вариант. Если открыть через ПУСК новый документ, то все нормально без лишних окон. Если нажать на панеле задач ПКМ и выбрать Personal.xlsb то серое окно исчезает. Personal.xlsb делал скрытым, при этом проблема исчезает, но становятся недоступны макросы (не видно в Вид - Макросы). Галочку "Игнорировать DDE-запросы..." ставил/убирал В 2010 офисе этой проблем нет. На компьютере установлено два офиса 2010 и 2013. При закрытии нужной книги остается это окошко, т.е. получается приходится два раза закрывать ексель.
Windows 2007 Максималка Office 2010 Office 2013 pro
Здравствуйте. Помогите пожалуйста с макросом, который создает ссылки. У меня есть документ, в первом листе в столбце А числа идут по порядку "1,2,3...", в столбце "B" "C" цифры могут быть разные... имена листов имеют вид названия столбцов "B"_"C". И вот мне нужно чтоб в первом листе, там где числа по порядку, создать ссылки на эти листы... строк больше 300 поэтому хотелось бы автоматизировать это дело. До этого все ссылки были. Но файл повредился и все ссылки пропали. Можно сделать на выделенные ячейки, но я не пойму как связать их с соседними ячейками, т.е. чтоб названия брал из соседних столбцов.
Доброго времени суток! Имеется внешняя книга макросов и вызывается она таким образом:
Код
Call Application.Run("'C:\Mac_Uni.xlsm'!Macros")
Подскажите пожалуйста, как закрыть эту книгу макросов, при нажатии на крестик UserForm? Вставляю этот код в ФОРМУ:
Код
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
ThisWorkbook.Close False
ThisWorkbook.Quit
Application.Quit
End If
End Sub
Таким методом конечно закрывается книга, но при повторном нажатии на макрос выдает ошибку ошибка 429 "ActiveX component can't create object".
Почему то на кнопке метод:
Код
ThisWorkbook.Close False
работает правильно, а вот именно на закрытии крестиком не пойму как...
Подскажите пожалуйста, куда и что вставить чтоб заработало
Здравствуйте уважаемые! Подскажите пожалуйста, как можно скопировать макросом данные из ячейки в буфер? т.е. как будто я кликнул два раза по ячейке, выделил весь текст и скопировал, а не просто выделил ячейку и скопировал. Потому что при копировании просто ячейки, если убрать выделение, то данные уже для вставки не доступны. А мне хотелось бы чтоб скопированные значения оставались, если даже после этого удалю данные из этой ячейки. Буду надеяться что понятно изложил суть своего вопроса.
Здравствуйте уважаемые специалисты. Скажите пожалуйста, как сделать так, чтоб при вводе цифр в TextBox именно 3ий символ был ":", т.е. это будет часы и минуты (HH:MM). Получается так, вводишь подряд числа, без ":", автоматический вставляется это двоеточие, сразу же после первых двух. Я так понимаю это нужно прописать в событии OnKeyDown или в Change Максимальную длину TextBox поставил 5 символов
Здравствуйте. Интересует такой вопрос. Я хотел спрятать макрос паролем, для этого я экспортировал форму и модуль с макросом в VBA и вставил в новую книгу и поставил пароль (через VBAProjectProperties). Сохранил новую книгу в формате "Двоичная книга Excel", т.е. получается такая же книга как и PERSONAL.XLSB. Вставил эту книгу туда же где и PERSONAL.xlsb. В итоге я получил что хотел, именно мой макрос(моя книга с макросами) закрылся паролем, но возникла другая проблема. Теперь при открытии нового документа, вместо имени по умолчанию стоит ИМЯ книги моего макроса. И расширение по умолчанию стоит "двоичная книга Excel". Если убрать эту книгу с той папки, где ПЕРСОНАЛ, то норм, а обратно ставишь опять так же... Подскажите пожалуйста, как можно добавить вторую личную книгу макросов? Чтоб без всяких таких косяков. Надеюсь понятно написал
Здравствуйте. Подскажите пожалуйста, как выделить диапазон ячеек с А1 до последней заполненной ячейки и поменять шрифт выделенной области на Arial 10 размер.
Таким как я сделал, объем листа, даже пустого, весит от 40 Мб!!! Я выделил весь лист, но я не могу знать сколько строк и столбцов может быть, поэтому попробывал так.
Здравствуйте. Суть вопроса такой: Имеется таблица со значениями (пример закреплен в сообщении), хотелось бы чтоб макрос обнулил(т.е. поставил вместо имеющихся значений 0) столбцы с определенной строки и до последней записи в этих столбцах, а в последнем столбце поменял формат даты на "DD.MM.YYYY H:MM", так же на весь столбец. После всех этих действий курсор поставить в ячейку А1. (EXCEL 2010) Спасибо за внимание.
Здравствуйте. Как заполнить выделенный столбец с чередованием значений? Чтоб было как во вложенном файле (Но не обязательно 7 строк, а чтоб на всем выделенном диапазоне).
Здравствуйте. Проблема такая, что когда пишу через VBA значение в ячейку "false", то макрос сразу превращает в "ЛОЖЬ", а мне нужно именно на английском, строчными буквами в выделенных ячейках написать слова "false". Пробывал и через Chr(), но результат тот же. Скажите пожалуйста, как написать чтоб было именно false, а не ЛОЖЬ. Читал про региональные настройки, но неочень понял как это сделать. Excel 2010
вот код:
Код
Private Sub CommandButton7_Click()
For Each Cell In Selection
Cell.Value = "false"
Next Cell
End Sub