![]() |
#1
|
|||
|
|||
![]() Greetings, I am trying to return boolean from a function but it is not returning its value. I know it is very simple but I have not been able why it is not returning value. Can anyone pointout what am i missing?? Code:
Sub autt() Dim bln As Boolean, doc as document, i as integer,ii as integer Set doc = ActiveDocument For i = 1 to Activedocument.range.paragraphs.count Set Para = doc.Paragraphs(i) If Selection.Information(wdWithInTable) = False Then bln = False Para.Range.Select bln = strr(bln) If bln = True Then 'Here the boolean will be still be false even after assigning it to True in function If Not Left(Para.Range.Style, 1) = "1" Then If Para.Range.words(1) = Chr(9) Or Para.Range.words(2) = Chr(9) And bln = True Then Para.Range.Style = "tt" ElseIf Para.LeftIndent = 0 And Para.FirstLineIndent = 0 Then Para.Range.Style = "t" End If If Para.Range.words(3) = Chr(9) Then Para.Range.Style = "tt" End If End If End If Else ii = Selection.Tables(1).Range.Paragraphs.Count i = iparanum + ii End If Next End Sub Function strr(bln As Boolean) As Boolean Dim x As Integer, rngg As String, y As Integer rngg = Selection.Range.Text x = Len(rngg): y = InStr(1, rngg, ":") If x - y < 3 And x - y >= 1 Then If Selection.Range.Text Like "*." & vbTab & "*" Then With Selection If .Paragraphs(1).Next.Range.Characters(1).Text = Chr(9) Then .Paragraphs(1).Next.Range.Characters(1).Delete .Range.Style = "tt" .Range.Bold = True End If .Range.Characters(x).Delete .Range.Style = "tt" .Range.Bold = True bln = True 'Here I have Set it to true the value in the main procedure is not turning to true End With End If End If End Function |
#2
|
||||
|
||||
![]()
Your code has two different variables called bln - one in the sub, one in the function. If you defined bln once at the top of the module (above the sub) then it would exist at the module level and you would have only one bln and therefore could use and reassign it anywhere in the module.
Alternatively, you pass the variable's value back to the sub by changing the commented line in the function to... Code:
strr = True
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
![]()
Thank you Andrew, I am very grateful for your reply. But when I declared module-level variable then while running the macro it said "Compile error" "By ref argument type mismatch" Can you please show the way to pass values correctly by modifying the code I posted. It would be of great help.
|
#4
|
|||
|
|||
![]() Code:
Sub autt() Dim bln As Boolean, doc As Document, i As Integer, ii As Integer Set doc = ActiveDocument For i = 1 To ActiveDocument.Range.Paragraphs.Count Set Para = doc.Paragraphs(i) If Selection.Information(wdWithInTable) = False Then Para.Range.Select bln = strr() If bln = True Then If Not Left(Para.Range.Style, 1) = "1" Then If Para.Range.Words(1) = Chr(9) Or Para.Range.Words(2) = Chr(9) And bln = True Then Para.Range.Style = "tt" ElseIf Para.LeftIndent = 0 And Para.FirstLineIndent = 0 Then Para.Range.Style = "t" End If If Para.Range.Words(3) = Chr(9) Then Para.Range.Style = "tt" End If End If End If Else ii = Selection.Tables(1).Range.Paragraphs.Count i = iparanum + ii End If Next End Sub Function strr() As Boolean Dim x As Integer, rngg As String, y As Integer strr = False rngg = Selection.Range.Text x = Len(rngg): y = InStr(1, rngg, ":") If x - y < 3 And x - y >= 1 Then If Selection.Range.Text Like "*." & vbTab & "*" Then With Selection If .Paragraphs(1).Next.Range.Characters(1).Text = Chr(9) Then .Paragraphs(1).Next.Range.Characters(1).Delete .Range.Style = "tt" .Range.Bold = True End If .Range.Characters(x).Delete .Range.Style = "tt" .Range.Bold = True strr = True End With End If End If End Function |
#5
|
|||
|
|||
![]()
Thank you Italophile for your effort..
|
![]() |
Thread Tools | |
Display Modes | |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
ScottyBee | Word VBA | 8 | 03-25-2019 03:24 PM |
Formula returning zero | allex011 | Excel | 2 | 12-03-2018 02:30 AM |
Hard Returning | Phil H | Excel | 2 | 05-15-2018 03:29 AM |
![]() |
kevskisa | Excel | 2 | 07-28-2015 03:19 AM |
Returning Next Record to the top | bordercollie10 | Mail Merge | 0 | 02-26-2009 09:06 AM |