Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel中特定行的最后一列_Vba_Excel - Fatal编程技术网

Vba Excel中特定行的最后一列

Vba Excel中特定行的最后一列,vba,excel,Vba,Excel,我必须找到工作表中一行的最后一列。我可以找到工作表中的最后一列,但对于特定的行,我需要找到最后一列,该列在excel中的每个工作表中都会有所不同,并且在每次运行时都会有所不同。为了找到最后一列,我使用了以下代码,并参考了问题: 更新: 试图使用下面的代码,但显示错误代码91。功能是: Function lastColumn(Optional sheetName As String, Optional rowToCheck As Long = 1) As Long Dim ws As

我必须找到工作表中一行的最后一列。我可以找到工作表中的最后一列,但对于特定的行,我需要找到最后一列,该列在excel中的每个工作表中都会有所不同,并且在每次运行时都会有所不同。为了找到最后一列,我使用了以下代码,并参考了问题:

更新: 试图使用下面的代码,但显示错误代码91。功能是:

 Function lastColumn(Optional sheetName As String, Optional 
rowToCheck  As Long =  1) As Long

Dim ws  As Worksheet

If sheetName = vbNullString Then
    Set ws = ActiveSheet
Else
    Set ws = Worksheets(sheetName)
End If

lastColumn = ws.Cells(rowToCheck, ws.Columns.Count).End(xlToLeft).Column

End Function
在代码中将其称为:

For Each ws In ThisWorkbook.Worksheets

    i = ws.Columns(2).Find("Total").Row (error code as 91)
    Debug.Print lastColumn(ws.Name, i)
Next ws
只需将
i
替换为行号即可

只需用行号替换
i

试试以下方法:

With Worksheets(set_sheet_name)
    LastCol = .Cells(5, .Columns.Count).End(xlToLeft).Column
End With
这将从“5”行中获得列数,如果需要另一行,只需根据需要更改5行即可。

尝试以下操作:

With Worksheets(set_sheet_name)
    LastCol = .Cells(5, .Columns.Count).End(xlToLeft).Column
End With

这将从第“5”行中获得列数,如果您想要另一行,只需将第5行更改为您需要的任何行。

这是我为每一特定行的最后一列使用的函数:

Function lastColumn(Optional sheetName As String, Optional rowToCheck As Long = 1) As Long

    Dim ws  As Worksheet

    If sheetName = vbNullString Then
        Set ws = ActiveSheet
    Else
        Set ws = Worksheets(sheetName)
    End If

    lastColumn = ws.Cells(rowToCheck, ws.Columns.Count).End(xlToLeft).Column

End Function
它采用可选参数
sheetName
rowToCheck
。这是为您的案例运行它的一种方法:

Public Sub TestMe()

    Dim ws      As Worksheet
    Dim lc      As Long
    lc  = 8

    For Each ws In ThisWorkbook.Worksheets
        Debug.Print lastColumn(ws.Name, lc)
    Next ws

End Sub

这是我为每个特定行的lastColumn使用的函数:

Function lastColumn(Optional sheetName As String, Optional rowToCheck As Long = 1) As Long

    Dim ws  As Worksheet

    If sheetName = vbNullString Then
        Set ws = ActiveSheet
    Else
        Set ws = Worksheets(sheetName)
    End If

    lastColumn = ws.Cells(rowToCheck, ws.Columns.Count).End(xlToLeft).Column

End Function
它采用可选参数
sheetName
rowToCheck
。这是为您的案例运行它的一种方法:

Public Sub TestMe()

    Dim ws      As Worksheet
    Dim lc      As Long
    lc  = 8

    For Each ws In ThisWorkbook.Worksheets
        Debug.Print lastColumn(ws.Name, lc)
    Next ws

End Sub

使用
ws.Cells(i,ws.Columns.Count).End(xlToLeft).Column
其中
i
=行数。错误91表示未在您检查的工作表的B列中找到“总计”一词。是否确定每一张工作表的B列某处都有一个单元格,其中有“总计”?您可能需要添加检查以确保正确找到该行。请使用
ws.Cells(i,ws.Columns.Count).End(xlToLeft).Column
其中
i
=行数。错误91表示未在您检查的工作表的B列中找到单词“Total”。是否确定每一张工作表的B列某处都有一个单元格,其中有“总计”?您可能需要添加一个检查以确保它被正确找到。这会给出工作表中的最后一列编号,但我需要一行的最后一列编号。我已经试过了,但每张工作表都有不同的行号,必须找出最后一列的行号。@user9351236-什么是行?一行?@user9351236-根据它的变化情况?每个工作表中的数据不同…因此每个工作表中的行号计数不同。@user9351236-因此您要查找每个工作表中最后一行的最后一列?这给出了工作表中的最后一列号,但我需要一行的最后一列号。我已经试过了,但每张工作表都有不同的行号,必须找出最后一列的行号。@user9351236-什么是行?一行?@user9351236-根据它的变化情况?每个工作表中的数据不同…因此每个工作表中的行号计数不同。@user9351236-因此您要查找每个工作表最后一行的最后一列?