2016-09-16 51 views
0

enter image description hereVBA代码来获取可见行

enter image description here从我刚才的问题参照的返回值。

VBA code to auto select previous 10 columns

我试图从其他表添加可见行的返回值。我试图修改在这篇文章中给出的代码,我确实在这里做错了,因为它的覆盖值从上面的代码行输入。

Sub Update() 
    Dim nCols As Long, nOffset As Long, Srce As Range 

    With Range("A1").CurrentRegion 
     With .Offset(, .Columns.Count - 1).Resize(1, 1) 
      If .Value < Date Then nOffset = 1 
      With .Offset(, nOffset) 
       .Resize(2, 1).Value = Application.Transpose(Array(Date, Application.WorksheetFunction.Subtotal(103, Worksheets("Stock").UsedRange.Columns(1).SpecialCells(XlCellType.xlCellTypeVisible)))) 
       nCols = IIf(.Column > 10, 10, 10 - .Column - 1) 
       .Offset(, -nCols + 1).Resize(, nCols).Select 
      End With 
     End With 
    End With 
End Sub 

我尝试添加以下行来获取可见行的返回值

.Offset(, .Columns.Count).Resize(3, 1) = Application.Subtotal(103, Sheets("Sharedstocks").Range("A:A")) 

请建议

+0

请添加一些截图/数据,以澄清输入和所需的输出 – user3598756

+0

@ user3598756,使用相同的截图,我有bunc h表格“股票”(第一张截图)和“SharedStock”上的数据。我想在第三张纸上添加可见行的数量在上面的示例中,如果您看到,我需要在E2上添加当前日期(E1)和“库存”的返回值,并在E3上返回“SharedStock”的返回值。 – sady

回答

0

可能这是你所追求的:

Option Explicit 

Sub Update() 
    Dim nCols As Long, nOffset As Long, Srce As Range 

    With Range("A1").CurrentRegion 
     With .Offset(, .Columns.Count - 1).Resize(1, 1) 
      If .Value < Date Then nOffset = 1 
      With .Offset(, nOffset) 
       .Resize(3, 1).Value = Application.Transpose(Array(Date, _ 
                    Application.WorksheetFunction.Subtotal(103, Worksheets("Stock").UsedRange.Columns(1).SpecialCells(XlCellType.xlCellTypeVisible)), _ 
                    Application.WorksheetFunction.Subtotal(103, Worksheets("SharedStock").UsedRange.Columns(1).SpecialCells(XlCellType.xlCellTypeVisible)) _ 
                   ) _ 
                  ) 
       nCols = IIf(.Column > 10, 10, 10 - .Column - 1) 
       .Offset(, -nCols + 1).Resize(, nCols).Select 
      End With 
     End With 
    End With 
End Sub 
+0

绝对,再次感谢你! – sady

+0

不客气 – user3598756