Sub rneig()
Dim Iter1 As String
For i = 2 To 414
Start = UCase(ThisWorkbook.Sheets(1).Cells(i, 11))
posNom1 = InStr(Start, "№")
posNom2 = InStr(Start, "N")
If posNom1 > 0 Then
Iter1 = Split(Start, "№")(1)
posNom = posNom1
ElseIf posNom2 > 0 Then
Iter1 = Split(Start, "N")(1)
posNom = posNom2
End If
posot = InStr(posNom, Start, "ОТ")
posOther = RegularExpression(Iter1, "/(\d){2}")
If posot > 0 Then
Iter1 = Split(Iter1, "ОТ")(0)
ElseIf posOther > 0 Then
Iter1 = Mid(Iter1, 1, posOther + 4)
End If
ThisWorkbook.Sheets(1).Cells(i, 30) = Iter1
Next i
End Sub
Function RegularExpression(FindIn As String, Expr As String) As String
Set RegExp = CreateObject("VBScript.RegExp")
With RegExp
.Global = False 'Все совпадения или только первое?
.IgnoreCase = True 'Регистр неважен?
.MultiLine = True 'Игнорировать переносы строк?
.Pattern = Expr
End With
Set Matches = RegExp.Execute(FindIn)
RegularExpression = Matches.Item(0).FirstIndex
Set Matches = Nothing
Set RegExp = Nothing
End Function
Все ОК, кроме 291 и 340 строк....из-за детского садика(
Sub reign()
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Сводная" Then
cnt = cnt + 1
Sheets(1).Cells(cnt + 2, 2) = sh.Name
Sheets(sh.Name).Range("B2") = sh.Name
End If
Next sh
End Sub
aleksey_dannik, Правильно. Потому что идет привязка к данным из 1 и 2 колонок. Либо вставляйте после. Начиная с 3. Либо поменять в коде (макросе) колонки после изменения.
Private Sub CommandButton1_Click()
For i = 2 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
dat = Sheets(1).Cells(i, 2)
den = Day(dat)
mes = MonthName(Month(dat))
For j = 1 To 23
If LCase(mes) = LCase(Replace(Sheets(2).Cells(j, 1), " ", "")) Then
Sheets(2).Cells(j + 1, den).Interior.Color = vbYellow
End If
Next j
Next i
End Sub
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
При клике Вы вносите данные в текстбокс. Только вот не с листбокса, а с листа1 в excel. Вы вносите данные путем перебора дат. Первую дату вы берете из строки листбокса, на которую кликнули. Вторую берете из листа excel. Если они одинаковые, то значения из листа вы вности в текстбоксы. Не глупо ли? Ведь у вас первая дата совпадает. Варианты решения: указывать точные данные, которые не будут повторяться (если дата то до секунд; или включить в проверку еще и фамилию)
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
При клике на запись в ЛистБоксе в текстбоксы записываются только значения последней строки, Форма для работы с бд студентов, все работает как надо, но есть ошибка в копировании содержимого из листбокса в текстбокс
Private Sub CommandButton2_Click()
For i = 1 To 7
If Controls("CheckBox" & i).Value = True Then
fios = fios & vbLf & Controls("CheckBox" & i).Caption
End If
Next i
ActiveCell.Value = fios
Unload Vibor_dokumenta
End Sub
Уберите в строках + 1. И тогда выведет: Москва, Россия, ЮАР, Германия
Вот модифицированный код Пытливого.
Код
Sub FindAndPaste()
Dim whIn As Worksheet, whOut As Worksheet, objR As Range, lngI As Long, strS As String
Set whIn = Worksheets("Лист2"): Set whOut = Worksheets("Лист1")
Set objR = whIn.UsedRange.Find(whOut.Range("E5"))
If Not objR Is Nothing Then
For lngI = 2 To whIn.UsedRange.Columns.Count
With whIn
If .Cells(objR.Row, lngI) <> "" Then
If lngI <> whIn.UsedRange.Columns.Count Then
strS = strS & .Cells(objR.Row, lngI) & ", "
Else
strS = strS & .Cells(objR.Row, lngI)
End If
End If
End With
Next lngI
Else
Exit Sub
End If
whOut.Range("F5") = strS
End Sub