2013-07-06 1 views
0

Я новичок в программировании и, очевидно, не очень опытен с функциями записи. Я написал функцию ниже, но по мере того, как я добираюсь до конца, операторы End Function имеют ошибку: Функция «viewSheets» не возвращает значение для всех путей кода.Ошибка функции: функция не возвращает значение для всех кодов кода

Я исследовал проблему, но безуспешно. Вот моя первая попытка в функции:

Option Strict On 
Option Explicit On 

Imports Microsoft.Office.Interop.Excel 
Imports System.Windows.Forms 
Module sheetView 

Function viewSheets(sheetName As String, status As Boolean, show As String) As String 

    Dim ThisApplication As Excel.Application = New Excel.Application() 
    Dim WB As Excel._Workbook 
    Dim WS As Excel.Worksheet 

    WB = CType(Globals.ThisWorkbook.Application.ActiveWorkbook, Excel.Workbook) 
    WS = DirectCast(WB.Sheets("sheetName"), Excel.Worksheet) 

    With ThisApplication 

     .ScreenUpdating = False 

     WS.Select() 

     .ActiveWindow.DisplayGridlines = status 
     .ActiveWindow.DisplayHeadings = status 
     .ActiveWindow.DisplayWorkbookTabs = status 
     .DisplayFormulaBar = status 
     .DisplayStatusBar = status 
     .ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", show)") 


     .ScreenUpdating = True 


    End With 

End Function 

End Module

+0

На самом деле, если вы не собираетесь возвращать значение из вашей функции, я бы просто сделать подпрограмму (метод), который не требует возврата заявления –

ответ

2

Вы объявили функцию, которая по определению должна вернуть значение.

В VB вы должны присвоить имя функции или после VB.Net вы можете вернуться, используя оператор возврата:

до конца функции просто поставить:

viewSheets="" 

Вы должны прочитать больше о функциях и подпрограммы в VB.

Difference between Private Sub, Function and Class

+0

спасибо, я сделаю так –

+1

Используйте оператор 'Return' в VB.NET вместо назначения значения имени функции:' Return '"' –

2

Он объявлен как функция, которая возвращает строку. Поскольку у вас включен параметр Strict, вам необходимо иметь оператор Return на всех кодах. Возврат должен возвращать строку.

+0

На самом деле, вы уверены, что это не просто предупреждение ? Это не из-за Option Strict, как я только что узнал, но мой ответ по-прежнему применяется. –

+0

что делать, если это всего лишь предупреждение? –

+1

Если это просто предупреждение, это означает, что у вас есть хотя бы один путь кода в функции, которая не возвращает значение 'Return'. Если этот код попал, функция вернет нулевое значение ('Nothing'). То есть 'FunctionThatDoesNotReturn() ничего не будет' True'. –

Смежные вопросы