天道酬勤,学无止境

excel

Twig Excel Bundle autosize

问题 回答1 您可以通过columnDimension将工作表的默认autoSize属性设置为true : {% xlssheet 'Worksheet' { columnDimension: { 'default': { autoSize: true } } }%} {# ... #} {% endxlssheet %} 要为特定列定义它,请使用所需列的字母而不是default ,例如 D 列: {% xlssheet 'Worksheet' { columnDimension: { 'D': { autoSize: true } } }%} {# ... #} {% endxlssheet %}

2022-07-11 09:58:49    分类:技术分享    excel   twig   bundle   autosize

Find Function in VBA

问题 我通过编写开始了一个简单的演示 Sub search() Range("B1:B7").Find("abc").Activate End Sub 我希望excel会自动选择一个包含值“abc”的单元格,但是,我收到一条错误消息,说“对象变量或未设置块变量”。 请问我有什么遗漏吗 欣赏它。 回答1 Sub tester() With Worksheets(6).Range("B1:B500") Set c = .Find("Smith Jon Junior", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address ' not required c.Activate else msgbox ("Not Found") End If End With End Sub

2022-07-11 09:56:47    分类:技术分享    vba   excel   find

Excel formula reference cell above last cell in range

问题 我正在尝试设置一个公式来自动计算范围内最近添加的单元格(包括范围底部的#N/A 值)与其上方的单元格之间的百分比变化。 我一直在使用这个公式来获得底部不是#N/A 单元格的值: LOOKUP(2, 1/NOT(ISNA(G8:G19)), G8:G19) 哪个工作正常。 我对如何到达其上方的单元格的第一个想法是使用 OFFSET,如下所示: OFFSET(LOOKUP(2, 1/NOT(ISNA(G8:G19)), G8:G19), -1, 0) 但这给了我一个错误,我认为是因为查找函数返回的是单元格中的值,而不是单元格引用。 我应该如何格式化函数以返回范围内最后一个非 N/A 单元格上方的单元格的值? 回答1 尝试使用此替代方法在 G 列中查找最后一个非错误的数值。 =index(G:G, match(1e99, G:G))/index(G:G, match(1e99, G:G)-1) 使用 MATCH 查找列中的最后一个数字会将行号返回给 INDEX。 从行号中减去 1 是一件简单的事情。 回答2 一种方法是使用此数组公式: =INDEX($G$8:$G$19,MATCH(2,IF(NOT(ISNA($G$8:$G$19)),1))-1) 作为一个数组公式,必须在退出编辑模式时使用 Ctrl-Shift-Enter 确认,而不是输入。 如果操作正确,Excel 会将{

2022-07-11 09:51:56    分类:技术分享    excel   excel-formula   excel-2013

Copy all cells with values from a range of columns into one single column

问题 我是 VBA 的初学者,我一直在从事我的第一个大型项目。 我有一个电子表格,可以比较多组数据,如果有任何错误,就会吐出值。 我的值在 T4:X4 范围内,我希望所有值都在 Z4:Z 范围内按顺序显示,没有空格。 问题之一是所有空白单元格中实际上都有公式,它们的计算结果为“”。 我不想复制那些。 这是我迄今为止编写的代码: Sub Generate_ReportVSP1() Dim rSource As Range Dim TargetRange As Range Dim i As Integer Dim j As Integer Dim LastRowCarrier As Long Dim LastRowConsole As Long Dim ws2 As Worksheet Set ws2 = Sheets("Sheet2") LastRowCarrier = ws2.Cells(Rows.Count, "X").End(xlUp).Row LastRowConsole = ws2.Cells(Rows.Count, "S").End(xlUp).Row LastRowReport = ws2.Cells(Rows.Count, "AA").End(xlUp).Row Set rSource = Application.Union(Range("T4:T" &

2022-07-11 09:41:12    分类:技术分享    excel   vba

Excel Vlookup with Autofill VBA

问题 我正在尝试制作一个看起来很简单的宏,但事实证明它比我想象的要难。 我开始使用“点击”方法制作它,但它并没有我想象的那么动态。 基本上我使用 vlookup 从另一个工作表中查找单元格 A2 中的名称,然后将 D 列中的数字复制到当前工作表中。 查看代码时,这部分看起来像这样: Range("D2").Select ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[-3],'Downstairs'!R[-1]C[-3]:R[200]C[14],4,0)" Range("D2").Select Selection.AutoFill Destination:=Range("D2:D" & lastrow&) 找到第一个数字后,我试图自动填充其余数字。 当你运行它时它会起作用,但我认为这只是因为名称是有序的。 但是,如果名称不按顺序排列,它将找不到正确的数字,部分原因是 R[] 和 C[] 中的所有数字随着您向下行而不断变化。 如果我在列表中添加更多名称,我认为它不会起作用,这是我需要它做的事情。 我将 R[] 中的数字从 93 更改为 200,因为我真的不知道如何合并我之前制作的 lastrow 对象,而且我不知道另一种方法可以使这个动态。 有一个更好的方法吗? 回答1 就像我在上面的评论中提到的那样,您不需要 VBA。 您可以直接在 Excel

2022-07-11 09:36:00    分类:技术分享    excel   vba   vlookup   autofill

enterprise architech export a Use Case to excel

问题 我有一个这样的用例图:用例 我可以将名称和描述导出到 Excel 中吗? 使用脚本? 回答1

2022-05-17 04:47:04    分类:技术分享    excel   vbscript   jscript   enterprise-architect

How to use Words selection methods through Excel VBA

问题 在 Word VBA 中,您可以使用 Selection.MoveLeft、Selection.MovRight 等设置和移动光标位置... 但是,当尝试在 Excel VBA 中使用相同的方法时,我收到一条错误消息,提示“对象不支持此属性或方法”。 我已导入 Word 对象库参考。 如何在 Excel 应用程序上使用 VBA 移动 Word 文档上的光标位置。 任何帮助将不胜感激。 代码:设置 Doc = ActiveDocument.Content With Doc.Find .Execute FindText:="*", ReplaceWith:="NEW*" End With Selection.HomeKey Unit:=wdStory Selection.MoveDown Unit:=wdParagraph, Count:=11 Selection.MoveRight Unit:=wdWord, Count:=4 Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend Selection.Font.Bold = False Selection.Font.Name = "Arial" Selection.Font.Size = 9 回答1 如果您改写您的问题,“在 Excel 应用程序上使用 VBA

2022-05-17 03:58:04    分类:技术分享    vba   excel   ms-word

Hide worksheet in Excel Add-In from other VBA Projects

问题 我有一个我正在构建的 Excel 加载项,它将用户设置存储在加载项内的Settings工作表中。 我使用Settings表本质上是存储布尔值和潜在的用户注册详细信息。 但是,如果我打开一个新的 VBA 项目并将加载项包含为参考(在 VBA 中: Tools > References > MY Add-In ),那么我可以访问Settings工作表并可能破坏其密码并破解注册细节。 Settings表设置为xlVeryHidden ,但可以通过 VBA 代码访问。 无论如何在Excel中防止这种情况? 例如,在一个模块中,我可以使用Option Private Module方法。 回答1 如果您使用密码保护并锁定项目,则无法查看您的代码和工作表对象。 转到工具 > VBAObject 属性 > 保护选项卡,然后勾选“锁定项目以供查看”,然后在“查看对象属性的密码”中设置密码。 但是,没有什么可以阻止黑客... For s = 1 to Sheets.Count Sheets(s).visible = True Next s ...查看您的设置表。 有几个选项: 1) 将设置表放在单独的工作簿或其他格式(如 .txt)中并从中读取(推荐)。 2)在您的设置表中使用某种加密并在您的代码中对其进行解密,一个非常简单的示例是使用数字代替文本,因此“示例”将 = '5,24,1,13,16

2022-05-17 02:58:39    分类:技术分享    vba   excel

EXCEL Formula not auto updating! Help!

问题 回答1 回答2

2022-05-17 02:57:16    分类:技术分享    excel

How to reference ActiveX ComboBox in Excel 2016 VBA

问题 我在这里和其他地方尝试了各种解决方案,例如: dim wb as workbook, ws as worksheet Dim cb As Object Set cb = ws.OLEObjects("ComboBoxViews") 或者 ComboBoxViews 或者 ws.comboboxviews 但是都返回错误 1004,没有找到具有指定名称的项目。 但它确实存在,检查名称非常清楚的属性是'comboboxviews'。 有任何想法吗? 编辑: 为了让其他人在未来寻求帮助并使用 Romcel 非常有用的代码作为基础,似乎为了向 ActiveX ComboBox(这是我的最终目标)添加项目,您需要将其作为对象引用: Sub caller3() Dim ws As Worksheet Dim oleob As OLEObject Set ws = ThisWorkbook.Sheets("Sheet1") For Each oleob In ws.OLEObjects If TypeName(oleob.Object) = "ComboBox" Then oleOb.Object.AddItem "TEST" <<< CORRECT oleOb.AddItem "TEST" <<< INCORRECT End If Next End Sub 回答1

2022-05-17 02:31:07    分类:技术分享    excel   activexobject   vba