Tag: 可见

仅复制可见单元格并粘贴到仅可见单元格dynamicmacros

我想要完成的是一个dynamic的macros,可以在许多不同的工作簿中使用以实现以下function:我想让用户input他们想要复制的范围。 这个范围将被过滤。 然后我想让用户select范围来粘贴复制的数据。 他们将粘贴到的范围也被过滤(可能是不同于数据被复制的filter)。IDEALLY用户只会select范围的左上angular的单元格来粘贴(而不必select整个东西)。 下面的代码将复制已过滤的数据(只有可见的单元格),如我所愿。 Dim RangeCopy As Range Dim RangeDest As Range Set RangeCopy = Application.InputBox("Select a range to copy ", "Obtain Range Object", Type:=8) MsgBox "The range you selected to copy is " & RangeCopy.Address RangeCopy.Select Selection.SpecialCells(xlCellTypeVisible).Select 'selects visible cells only from previously selected range Selection.Copy 粘贴当然是棘手的部分。 我发现我可以通过以下方式手动“粘贴”: 假定复制范围是A1:A10,粘贴范围是B10:B20 可以在单元格B10中input公式“= A1”—>复制单元格B10 —->select想要粘贴的范围—->使用“Alt”。 快捷方式—->粘贴。 […]

VBA:如何忽略范围内的隐藏行?

我正在尝试做一个突出显示,并可见(不隐藏)的所有行的计数。 我的计数公式的作品,但它仍然计算隐藏行也隐藏。 我怎样才能只计算突出显示和可见的行? 'This function will count how many cells in a given range for a given color and are visible Function COUNTCELLCOLORSIF(CellRange As Range) As Long Dim rngCell Application.Volatile For Each rngCell In CellRange If rngCell.Interior.ColorIndex = "36" and rngCell.visible Then COUNTCELLCOLORSIF = COUNTCELLCOLORSIF + 1 End If Next rngCell End Function

Excel VBA在应用自动筛选器后从可见单元格中获取范围值

是不是可以做这样简单的事情来获得B2的范围值? crdata.Range("B2").SpecialCells(xlCellTypeVisible).Value 我已经应用自动filter过滤出给定的标准,并试图返回作为一个函数B2的范围。

检查整个范围是否隐藏的一致方法

我有一个广泛的代码,用于调整filter和读取独特的值到combobox等,它的工作几乎完美,但是这一行代码有时不正确(只有当我过滤某些值,虽然看起来)。 如果所有的行由于通过makro应用的filter而被隐藏,则应该防止错误。 If RangeCombo.EntireRow.Hidden = False Then RangeCombo包含隐藏行和非隐藏行,当它不工作,所以我真的不知道是什么原因造成的。 我试过这个: If RangeCombo.SpecialCells(xlCellTypeVisible).Count > 0 Then 但如果范围内没有可见的单元格,则会引发错误。 我也试过: Set x = RangeCombo.Find("*", , xlFormulas, xlWhole) If Not x Is Nothing Then 但是即使整个范围被隐藏,也会find单元格。 我会很高兴任何解决scheme,可以帮助我环绕xlCellTypeVisible错误(当RangeCombo中的所有单元格都为空时)或任何其他方式,我可能实现我的目标。

Powershell COM Excel可见不工作

我写了一个简短的Powershell脚本来复制一些Excel数据。 脚本工作正常,但它每次运行时打开Excel,甚至认为可见的属性设置为$ false。 任何人有任何想法为什么? 我已经search了答案,但找不到任何解决scheme。 我也显示了属性,并设置正确。 打开工作簿时打开Excel。 谢谢, 克里斯 码: ## function to close all com objects function Release-Ref ($ref{ ([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref) -gt 0) [System.GC]::Collect() [System.GC]::WaitForPendingFinalizers() } #Read-Host -Prompt "Press Enter to exit" ##################################################################### ## Load excel com objects attach to file ##################################################################### $ExcelPath = 'C:\Chris_Test.xls' $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $False write-host "Visible […]

复制整个工作表,因为它没有隐藏的行

我有一个代码,我用来从另一个工作簿复制整个工作表,我想要复制的工作表具有隐藏的列,这些列也与我目前使用的代码一起复制。 所以我想要复制的工作表完全如何查看。 没有隐藏的栏目等等。 这是我目前的代码。 Dim x As Workbook Dim y As Workbook Dim vals As Variant Set y = ThisWorkbook Sheets("Sheet3").UsedRange.Delete Set x = Workbooks.Open("http://blabla/download.xlsx") With x.Sheets("SME Tal").UsedRange y.Sheets("Sheet3").Range("A1").Resize( _ .Rows.Count, .Columns.Count) = .Value End With

Excel用户窗体和windows.visible

我需要一些帮助完成这个项目。 我创build了一个用户表单,它充当一个数据input表单,并运行各种报表,工作正常。 用户窗体打开Workbook_Open事件,我需要隐藏工作簿,因为用户有打破它的习惯! Application.visible = false作品,但是,当用户打开其他工作簿并closures它们,用户窗体的父工作簿也closures或隐藏用户窗体,我不知道如何防止它。 我已经尝试了一些API调用,但是在工作簿closures或隐藏(包含表单)的情况下,我仍然遇到同样的问题。 有没有人设法find正确的API,使用户窗体看起来或作为一个独立的应用程序,例如打开没有工作簿是可见的,允许其他工作簿/程序来到前面,允许用户select父工作簿/用户窗体在任务栏需要时,在上一个工作簿closures时不会隐藏或closures。 如果任何人都可以指向正确的方向或列出API调用,我真的很感激。 我正在使用Excel 2013。 非常感谢 皮特

从ListObject表的特定列中selectSpecialCells(xlCellTypeVisible)

我正在试图获取一个ListObject表的某些列的可见单元格到一个范围对象。 这似乎并不奏效。 dim rng as range with activesheet.listobjects("Tab_data").databodyrange set rng=.specialcells(xlcelltypevisible) end with 但是这个工程,当我select整个范围,然后抵消第一列,以select其他2所需的列! dim rng as range with activesheet.usedrange Set rng = .Offset(1, 1).Resize(.Rows.Count-1, .Columns.Count-1).SpecialCells(xlCellTypeVisible) end with 但我不能在公式中使用上面的公式,因为我的公式只涉及下面显示的listobject中的2列: 工作表上的UDF公式: =TagCloud(RngWrdLst as Range) 我正在使用它: =TagCloud(tab_data[[Brands]:[Index]]) 从图像中可以看到,我只想要“Brands”和“Index”列中的可见单元格范围,而不是“COLUMN”列中的单元格。 所以我想要的可见范围是: "$B$2:$C$3,$B$45:$C$45,$B$75:$C$78" 编辑@Jeeped: 如果我有一个从工作表单元格调用的UDF函数,并传递列B&C(只有这些列,而不是整个数据)的ListObject范围,那么我将如何findRngWrdLst可见范围? 例如 从工作表中调用: =TagCloud(tab_data[[Brands]:[Index]]) function定义: Function TagCloud(RngWrdLst As Range) Dim VisibleRng As Range With RngWrdLst Set VisibleRng […]

Excel VBA – PivotItems返回最低价值

在Excel工作簿中,我在工作表上具有“静态”数据透视表,该表基于另一个工作表中的数据。 我刷新了数据表上的数据(谢谢你队长明显!),然后我想显示所有的项目,免除空白的,所以我运行抛出所有的PivotItems设置为可见,并在最后,不选空白的一个: i = 1 ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").ClearAllFilters ThisWorkbook.Sheets("TCD").PivotTables(i).PivotCache.MissingItemsLimit = xlMissingItemsNone For Each PvI In ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems PvI.Visible = True Next ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems("(blank)").Visible = False 在我的循环的最后一次发生,在第四个PivotItems,我有执行错误'1004'(我会翻译它从法国,这可能是我一些错误,对不起)“不可能定义属性可见的类PivoItem “,所以我检查了几件事情: ?ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems.count 4 对于x = 1至4: ?ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems(x) (blank) SFT ACQ TEP 看起来我在我的数据透视表中有4个项目,但是 而且,当我检查我的数据时,我只有2个不同的统计数据: 那么这第四个PivotItems的元素是从哪里来的?我怎样才能得到它? 谢谢。

XL2003:更改ThisWorkbook.Windows()。Workbook_BeforeClose事件过程中的Visible属性可防止工作簿closures

如题。 这让我发疯,在networking上的其他任何地方我都找不到任何引用。 我有一个VBA-laden工作簿通常隐藏通过使用: ThisWorkbook.Windows(1).Visible = False 但是,当工作簿closures时,我需要它恢复到一个默认状态,其窗口是可见的,并显示一个“特殊的”工作表,指示用户启用macros。 这是为下一个用户在禁用macros的情况下打开工作簿提供指导。 当工作簿打开并启用macros时,Workbook_Open事件会负责隐藏此消息,此时正常操作将继续。 我的问题是,当我从工作簿的_BeforeClose事件中更改.Windows().Visible属性(只有在Excel退出时才会发生),工作簿仍保留在屏幕上。 我已经确认,它确实设置了导致这种行为的.Windows().Visible属性。 我已经尝试使用ThisWorkbook.IsAddin属性,因为这与从用户视图中“隐藏”工作簿具有相同的效果,但这会导致完全相同的行为。 我也尝试过不以任何方式更改窗口的可见性,希望随后打开禁用macros的工作簿将导致该属性被忽略,但事实并非如此。 我唯一能做的就是让ThisWorkbook.Close作为_BeforeClose事件本身的最后一行,但这会导致不稳定,这种情况偶尔出现“Excel意外closures,你想恢复/重启?” Excel退出后的错误消息。 任何帮助/指针感激地接受。 我无权访问Excel的更高版本。 我的代码: Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.ScreenUpdating = False Call cleanUp Application.ScreenUpdating = True End Sub 和 Private Sub cleanUp() Dim s As Worksheet shtZNM.Visible = xlSheetVisible For Each s In ThisWorkbook.Sheets If Not s Is shtZNM Then […]