VBA - Visual Basic 2008
-
Uzvern
Re: VBA - Visual Basic 2008
Кстати, что такое цикл For Each?
Чет я немогу понять как юзать FindNext/FindPrevious. Можно показать на примере? В том примере не смог ничего путного понять.
Чет я немогу понять как юзать FindNext/FindPrevious. Можно показать на примере? В том примере не смог ничего путного понять.
-
mrcnn
Re: VBA - Visual Basic 2008
Как полностью вырубить в VB.Net
1. синтаксическую проверку во время написания программы (подчерки и т.д.)
2. всяческие исправления
a) табулирование,
b) замены маленьких букв на большие,
c) постановку скобок,
d) авто закрытие циклов,
e) автозакрытие функций
и т.п
Заранее спасибо за ответ
1. синтаксическую проверку во время написания программы (подчерки и т.д.)
2. всяческие исправления
a) табулирование,
b) замены маленьких букв на большие,
c) постановку скобок,
d) авто закрытие циклов,
e) автозакрытие функций
и т.п
Заранее спасибо за ответ
-
mrcnn
Re: VBA - Visual Basic 2008
For Each очень удобен когда на перёд не известно количество элементов, а While и Repeat не охота пристраивать,
Сдесь же можно переделать, добавив на форму ещё RichTextBox1 (для хранения строки и отображения результата) и TextBox1(для указания чего искать), указанный код к такому виду.
Код:
После трёх нажатий в предыдущей версии коде выскакивает ошибка.
mrcnn,
Это всё выключается здесь Project -> Options-> Text Editor Basic -> VB Specific

пример
. Указанный Find/FindNext/FindPrevious будут работать при табличном представлении строчки, например как в Excel при указание Range.Сдесь же можно переделать, добавив на форму ещё RichTextBox1 (для хранения строки и отображения результата) и TextBox1(для указания чего искать), указанный код к такому виду.
Код:
Код: Выделить всё
Public Class Form1
Dim FindingString As String = "asdgfsdfgsdfgsdfgStringsdfgsdfgsdfgStringsdfgsdfgsdfgString"
Dim FindString As String = "String"
'Dim FirstTemp As String = ""
'Dim SecondTemp As String = ""
'Dim ValidateTemp As Integer = 0
Dim start As Integer = 0
Dim indexOfSearchText As Integer = 0
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
RichTextBox1.Text = FindingString
TextBox1.Text = FindString
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'If ValidateTemp = 0 Then
'ValidateTemp = 1
'FirstTemp = FindingString
'SecondTemp = Mid(FirstTemp, InStr(FirstTemp, FindString))
'FirstTemp = SecondTemp
'MsgBox(FirstTemp)
'Else
'SecondTemp = Mid(FirstTemp, InStr(FirstTemp, FindString) + Len(FindString))
'FirstTemp = SecondTemp
'SecondTemp = Mid(FirstTemp, InStr(FirstTemp, FindString))
'FirstTemp = SecondTemp
'MsgBox(FirstTemp)
'End If
Dim startindex As Integer = 0
If TextBox1.Text.Length > 0 Then
startindex = FindMyText(TextBox1.Text.Trim(), start, RichTextBox1.Text.Length)
End If
' If string was found in the RichTextBox, highlight it
If startindex >= 0 Then
' Set the highlight color as red
RichTextBox1.SelectionColor = Color.Red
' Find the end index. End Index = number of characters in textbox
Dim endindex As Integer = TextBox1.Text.Length
' Highlight the search string
RichTextBox1.Select(startindex, endindex)
' mark the start position after the position of
' last search string
start = startindex + endindex
End If
End Sub
Public Function FindMyText(ByVal txtToSearch As String, ByVal searchStart As Integer, ByVal searchEnd As Integer) As Integer
' Unselect the previously searched string
If searchStart > 0 AndAlso searchEnd > 0 AndAlso indexOfSearchText >= 0 Then
TextBox1.Undo()
End If
' Set the return value to -1 by default.
Dim retVal As Integer = -1
' A valid starting index should be specified.
' if indexOfSearchText = -1, the end of search
If searchStart >= 0 AndAlso indexOfSearchText >= 0 Then
' A valid ending index
If searchEnd > searchStart OrElse searchEnd = -1 Then
' Find the position of search string in RichTextBox
indexOfSearchText = RichTextBox1.Find(txtToSearch, searchStart, searchEnd, RichTextBoxFinds.None)
' Determine whether the text was found in richTextBox1.
If indexOfSearchText -1 Then
' Return the index to the specified search text.
retVal = indexOfSearchText
End If
End If
End If
Return retVal
End Function
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
start = 0
indexOfSearchText = 0
End Sub
End ClassПосле трёх нажатий в предыдущей версии коде выскакивает ошибка.
mrcnn,
Это всё выключается здесь Project -> Options-> Text Editor Basic -> VB Specific

-
mrcnn
Re: VBA - Visual Basic 2008
>>Это всё выключается здесь Project -> Options-> Text Editor Basic -> VB Specific
Отключения подчерков нет.
Отключения подчерков нет.
-
Uzvern
Re: VBA - Visual Basic 2008
Как работать с Error , Err и т.д. + как выводить справку, после нажатия в MsgBox на кнопку "Справка"
-
Admiral
Re: VBA - Visual Basic 2008
Весьма странно, что начинает прыгать и не выполнять выборку по Case. Тем не менее, ответ по избавлении от 9 Or 10 Or 12 Or 13 одним махом
Case Else
GoTo generaciya
Остальные комментарии в коде
Код:
Хороший пример, что б показать как можно комбинировать операторы-комментаторы. Rem я использую - когда явно пишу комментарии, а ' - для отключения строчек кода.
Case Else
GoTo generaciya
Остальные комментарии в коде
Код:
Код: Выделить всё
Public Class Form1
Dim i As Integer
' Dim v As Integer = 0 REM Оно нужно только для цикла, пускай там и создаётся
'...
Private Sub ret()
'Do Until v = 20 REM Чем обусловлен выбор именно этого цикла?
'v = v + 1 REM Если использовать For данной строчки не потребуется
REM For и буду использовать
For v As Integer = 0 To 20
generaciya:
i = Int(Rnd() * 190 + 1)
Select Case i
Case 1 To 8
RichTextBox1.Text = RichTextBox1.Text & Chr(i)
Case 11
RichTextBox1.Text = RichTextBox1.Text & Chr(i)
Case 14 To 190
RichTextBox1.Text = RichTextBox1.Text & Chr(i)
'Case 9 Or 10 Or 12 Or 13 REM Если интересуют значение только 1-8, 11, 14-190 то здесь выборку не стоит делать, а написать
Case Else
GoTo generaciya
End Select
Next v
End Sub
'...Хороший пример, что б показать как можно комбинировать операторы-комментаторы. Rem я использую - когда явно пишу комментарии, а ' - для отключения строчек кода.
-
mrcnn
Re: VBA - Visual Basic 2008
Что за фигню (в каких единицах) мне возвращает Math.Acos и как эту фигню превратить в градусы?
Мне нужно значение в градусах, полученное из косинуса
Мне нужно значение в градусах, полученное из косинуса
-
mrcnn
Re: VBA - Visual Basic 2008
mrcnn, MSDN нету? Ставится даже c Express редакцией. Причём на неё можно поставить
Всё верно результата возвращает в specified number.
полный
не Express.Всё верно результата возвращает в specified number.
Math.Acos Method
-
Uzvern
-
Uzvern