Private Declare Function WideCharToMultiByte Lib "kernel32.dll" _
(ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr _
As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, _
ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, _
ByVal lpUsedDefaultChar As Long) As Long
Public Function ToUTF8(ByVal sText As String) As String
Dim nRet As Long, strRet As String
strRet = String(Len(sText) * 2, vbNullChar)
nRet = WideCharToMultiByte(65001, &H0, StrPtr(sText), Len(sText), _
StrPtr(strRet), Len(sText) * 2, 0&, 0&)
ToUTF8 = Left(StrConv(strRet, vbUnicode), nRet)
End Function
Sub test() ' Пример работы с функцией '
text = ToUTF8(textANSI)
End Sub
=СУММ(B$1:B1)
Application
лучше написать WorksheetFunction
.' НомерСтроки - Кол-во непустых ячеек в колонке "1" + 1, а не номер первой пустой строки
' НомерСтроки - Номер первой пустой строки на рабочем листе
НомерСтроки = ActiveSheet.Cells.SpecialCells(xlLastCell).Row + 1
КолНепустых = ActiveCell.SpecialCells(xlCellTypeLastCell).Row - _
ActiveCell.EntireColumn.SpecialCells(xlCellTypeBlanks).Count
методы гарантированной проверки
Dim y as byte, f as double
' ... цикл "For y" будет вложен в цикл: For x = 2 To 6
For y = 1 To 7
f = f + y
Next y
Option Explicit ' Обязательное объявление переменных
' чтобы избежать ошибок, и так удобнее пользоваться отладчиком
'123456789012345678901234567890123456h8nor@ya567890123456789012345678toster56789
Sub Save_in_avArr() ' Процедура сохранения в массив avArr
' значений из Me!ОрганРегУчета и присвоение массиву avArr1
' верхней границы массива avArr
Dim i As Integer, avArr() As String, avArr1 As Variant
' По умолчанию функция Split использует разделитель "символ ПРОБЕЛ"
avArr = Split(Me!ОрганРегУчета)
' Передаваемая строка Me!ОрганРегУчета стала массивом avArr
' Нижняя граница массива LBOUND(avArr) = 0
ReDim avArr1(UBound(avArr)) ' Создаём массив avArr1 с верхней границей как у avArr
' Заполняем массив avArr1 от 0 до e (в вашем случае)
For i = LBound(avArr1) To UBound(avArr1)
' ...
' avArr1(i) = i
Next i
' Например, выводим на экран значения массива avArr1
MsgBox "№ имеет значение: " & Join(avArr, vbCr & "№ имеет значение: ")
End Sub
' Иногда вместо объявления динамического массива текстового типа String
Dim avArr() As String
' Удобнее использовать универсальный тип переменной Variant
Dim avArr() As Variant
' Тогда в ходе выполнения можно удалить из массива, например, элементы с 0 по 2
ReDim Preserve avArr(3 To UBound(avArr))
' Примечание: в многомерных массивах изменять можно только последнюю размерность
' Важно! Если не объявлять динамический массив, а поместить его в тип переменной
Dim avArr As Variant
' то работа со значениями массива будет медленнее примерно в 18 раз