Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic: новости сайтов, советы, примеры кодов. Выпуск 267


Информационный Канал Subscribe.Ru

Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 267.


VBNet VBMania
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
  • Хрестоматия VB
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Здравствуйте...
    Читайте!


    Содержание выпуска




    Ошибка 1004 при копировании листа в Excel.

    Вопрос:

    В Excel 2000 при копировании листа

    Sheets("Name").Copy After:="NameA"

    Где-то на 26-31-й копии возникает ошибка #1004 и лист не копируется. Что это за глюк? Как с ним бороться?

    Ответ:

    Используй следующий метод: не Sheets("Name").Copy, а ActiveSheet.Copy

    str1 = ActiveSheet.Name + "_svod"
    ActiveSheet.Name = "proverka"
    ActiveSheet.Copy before:=Workbooks(WBN).Worksheets("START")
    ActiveSheet.Copy before:=Worksheets(Worksheets.Count)

    zhebelev

    наверх


    Как в VBA добавить несколько Enter'ов?

    Вопрос:

    Как в VBA добавить несколько Enter'ов?

    Ответ:

    Private Function EnterTab(ByVal n As Long)
         Dim i As Long = 0
         For i = 0 To n
             objDoc.ActiveWindow.Selection.InsertParagraphAfter()
         Next i
    End Function

        Евгений

    наверх


    Почему в MS Word первый запуск макроса занимает много времени?

    Вопрос:

    Почему исполнение в MS Word любого пользовательского макроса на VB, даже не очень объемного, занимает слишком много времени. Причем это происходит только при первом его запуске. В дальнейшем работа любого существующего макроса происходит с завидной скоростью.

    Ответ:

    Дело в том, что при первом запуске код макроса предварительно компилируется и храниться в так называемом пи-коде. Это и требует некоторого времени. В дальнейшем используется только этот скомпилированный код. Когда кто либо вносит изменения в макрос, код перекомпилируется.

    Shemyakin, Dmitry

    наверх


    Как узнать размер директории (поддиректорий нет)?

    Вопрос:

    Как узнать размер директории (поддиректорий нет)?

    Ответ:

    Dim sngSize as Single
    Dim strFile as String
    const Path="C:\Windows\"

    strFile= Dir (Path & "*")  'Получим первый файл

    Do while strFile <>"" 'Продолжаем, пока в дирректории есть файлы
       sngSize=sngSize + FileLen(Path & strFile)  'Прибавим его размер.
       strFile= Dir ()  'Получим следующий файл
    Loop 'Завершение цикла.

        Артем Кривокрисенко

    Public Sub ShowFolderInfo(Folder As String)
    Dim fso, fld, s
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fld = fso.GetFolder(Folder)
      s = fld.Name & " занимает " & fld.Size & " байт"
        MsgBox s
    End Sub


        DedMorozzz

    Option Explicit

    Private Const MAX_PATH = 260

    Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
    End Type

    Private Type WIN32_FIND_DATA
        dwFileAttributes As Long
        ftCreationTime As FILETIME
        ftLastAccessTime As FILETIME
        ftLastWriteTime As FILETIME
        nFileSizeHigh As Long
        nFileSizeLow As Long
        dwReserved0 As Long
        dwReserved1 As Long
        cFileName As String * MAX_PATH
        cAlternate As String * 14
    End Type

    Private Declare Function FindFirstFile& Lib "kernel32" Alias
    "FindFirstFileA" (ByVal lpFileName$, lpFindFileData As WIN32_FIND_DATA)
    Private Declare Function FindNextFile& Lib "kernel32" Alias
    "FindNextFileA" (ByVal hFindFile&, lpFindFileData As WIN32_FIND_DATA)
    Private Declare Function FindClose& Lib "kernel32" (ByVal hFindFile&)

    Private Paths$(), kolPath&, gFsize#

    Private Sub CreateFileList(Pat$)
    Dim hFind&, dwFindData As WIN32_FIND_DATA
    Dim nI As Integer, Ndir As Integer, sDirList$()

    Ndir = -1
    ReDim Preserve sDirList$(0)


    dwFindData.cFileName = Pat + "*.*"
    hFind = FindFirstFile((Pat + "*.*"), dwFindData)
    Do

    If (dwFindData.dwFileAttributes And vbDirectory) = vbDirectory Then
     Ndir = (Ndir + 1)
     ReDim Preserve sDirList$(Ndir)
     sDirList(Ndir) = Mid(dwFindData.cFileName, 1,
    (InStr(dwFindData.cFileName, Chr(0)) - 1))
    Else
     gFsize = (gFsize + dwFindData.nFileSizeLow)
     kolPath = (kolPath + 1)
     ReDim Preserve Paths$(kolPath)
     Paths(kolPath) = Pat + Mid(dwFindData.cFileName, 1,
    (InStr(dwFindData.cFileName, Chr(0)) - 1))
    End If

    Loop While FindNextFile(hFind, dwFindData) > 0
    FindClose (hFind)


    For nI = 2 To Ndir
    kolPath = (kolPath + 1)
    ReDim Preserve Paths$(kolPath)
    Paths(kolPath) = Pat + sDirList(nI)
    CreateFileList (Paths(kolPath) + "\")
    Next nI

    End Sub

    Public Sub GetFilesList(Pat$, kolItems&, dwList$(), FilesSize#)
    Dim tm&, dwPath$

    dwPath = Pat
    If Right(dwPath, 1) <> "\" Then dwPath = dwPath + "\"

    kolPath = 0
    gFsize = kolPath
    ReDim Preserve Paths$(kolPath)
    Paths(kolPath) = Pat

    CreateFileList dwPath

    kolItems = kolPath
    FilesSize = gFsize
    ReDim dwList(kolPath)

    For tm = 0 To kolPath
    dwList(tm) = Paths(tm)
    Next tm

    End Sub

        Ivan Rozhuk

    наверх


    Как читать и записывать данные в книге Excel из VB?

    Вопрос:

    Если есть у кого-нибудь пример как записывать и считывать данные из ячеек Excel-я в VB?

    Ответ:

    Вот пример как можно работать с Exelem
    Вставляем этот код в обработку какой-нибудь кнопки.

    Dim EXL As Object
    Dim STR As String
    'создаем объект
    Set EXL = CreateObject("Excel.Sheet")
    Set EXL = EXL.Application.ActiveWorkbook.ActiveSheet

    'Заносим данные в ячейки
    EXL.Range("A1").Value = "Пробный"
    EXL.Range("B1").Value = "Файл"
    EXL.Range("C1").Value = "по"
    EXL.Range("D1").Value = "Работе"
    EXL.Range("E1").Value = "с Exelem"

    'Изменяем шрифт и.т.д.
    EXL.Range("A1").Font.Bold = True
    EXL.Range("A1").Font.Size = 16

    'Берем данные из ячеек
    STR = EXL.Range("A1").Value & EXL.Range("B1").Value & _
    EXL.Range("C1").Value & EXL.Range("D1").Value & _
    EXL.Range("E1").Value

    'сохраняем Excel документ на диске
    On Error Resume Next
    EXL.SaveAs App.Path & "\Proba.xls"
    'удаляем объект из памяти
    Set EXL = Nothing

      Единственное ограничение: код будет работать только на машине с установленным Excel'ем.
      Еще можно заморочиться, раздобыть описание формата Excel'евских файлов и написать алгоритм чтения этих файлов самому, но стоит ли так морочиться?

    Мунгалов АВ, Kirill



    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса: Нормурадов Игорь aka I-Sof

    Ответ ожидается по этому адресу

       У меня есть файл (123.txt) в котором написан VB код, допустим MsgBox "Hello World!!!". Мне нужно чтобы программа выполняла этот код. Т.е. при нажатии на кнопку выполняется код из файла.


    Автор вопроса: dif654

    Ответ ожидается по этому адресу

       Когда я с помощью элемента управления DriveListBox выбираю диск A (3.5), программа у меня выдает ошибку (только когда в нем нету дискеты) о том, что в устройстве отсутствует носитель, она закрывается. Как мне сделать, чтобы вместо ошибки он мне выдал сообщение "Вставьте дискету..." и можно было вернуться назад на исполнение программы?


    Автор вопроса: dif654

    Ответ ожидается по этому адресу

       Как сделать предворительный просмотр в текстовом редакторе?


    Автор вопроса: dif654

    Ответ ожидается по этому адресу

       Как сделать, чтобы вставлялся текст из буфера обмена, копировался туда, вырезался, функции REDO и UNDO.


    Автор вопроса: Александр

    Ответ ожидается по этому адресу

       Win98(русский), набираю текст в базу данных MS Access; пишу програмку на VB6, которая просто выводит текст на экран - все в порядке. Преношу базу и програмку на Win98(английский)- отображает текст некорректно, даже если устанавливаю шрифту charset=204. Догадываюсь что проблема связана с codepage, но как исправит ситуацию? Подскажите плз, хотя бы направление где искать решение этой проблемы. Очень нужно.




    Ответы:


    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу


    В избранное