Tag: 命名范围

填充combobox问题 – 每次select框时重复的值,并且命名范围不填充

我是新来的VBA和StackOverflow,所以我提前道歉,任何错误。 我有一个用户窗体,最终将有16个combobox。 所有这些combobox中的16个将具有相同的5个调查响应选项)。 我的第一个尝试是像这样填充它们,每个combobox重复16次: Private Sub cboAE1A_DropButtonClick() 'Populate control. Me.cboAE1A.AddItem "Strongly disagree" Me.cboAE1A.AddItem "Disagree" Me.cboAE1A.AddItem "Neither agree nor disagree" Me.cboAE1A.AddItem "Agree" Me.cboAE1A.AddItem "Strongly agree" End Sub 但是,当我testing表单时,不止一次selectcombobox复制响应选项。 所以,如果我点击它,一切都很好。 第二次,我看到3组响应选项,等等。 这是为什么? 我能做些什么来防止它? 其次,为了避免重复上述代码16次,我find了这个链接,并试图使其适应我的目的: Private Sub ufrmGenderTraining_Initialize() 'Populate AE1A combo box. Dim rngRespuestas As Range Dim ws As Worksheet Set ws = Sheets("INPUTS") For Each rngRespuestas In […]

Excel VBA – ActiveX列表框行为 – 正在清除select

我想找出一对ActiveX多选列表框的问题。 这些列表框位于不同的工作表上,但我已经设置为在两者之间同步鼠标上的值。 这些调用一个函数来同步这两个,然后更新一个单元格以保留select。 由于写入表单导致Excel计算,因此我必须恢复这些select。 出于某种原因,除了当我从“摘要”工作表的第二个框中运行时,一切似乎都正常工作。 简而言之,使用debugging器的断点运行第二个盒子的MouseUp事件代码工作。 只要触发事件而没有断点,一切都会奏效,但是在一两秒之后,select就会清除。 我可以确认,重新运行代码以恢复select将从此正常工作。 所有其他行为在这个时候按预期工作。 只有当MouseUp事件被触发(没有断点)时,它似乎会导致一些清除select的事件。 (我现在认为这是重新启用事件之后的表格计算…虽然我认为这也会发生在debugging过程中…) 更新1:在将EnableEvents设置为true之后,我find了一个解决scheme,该工作区与存储选定内容的表格相关。 因此,我已经插入Sheet(…).Calculate如下所示,事情现在按预期工作。 这种行为似乎很奇怪,所以我想看看是否有其他人遇到过这样的事情。 为什么即使在事件被禁用时进行了更改,工作表也会重新计算? 由于某种原因,暂时禁用计算似乎也没有做到这一点,尽pipe我没有花太多时间来testing这个想法(它似乎创造了更多的问题,而不是固定的)。 更新和解决scheme: 这个问题结果与我原先想象的不同。 我发现它与同步无关,实际上与列表框位于不同的页面上有关。 两者都指的是一个dynamic范围 (我忘了提及),这实际上是关于dynamic范围重新计算(从而重置列表框)。 最初当我有一个盒子时,我通过不通过命名范围的盒子来解决这个问题,但是每次由于导入数据(或者就地控制器调整)来更新范围的地址。 这个盒子与dynamic范围在同一页面,而另一个不在,这意味着我不能传递地址(ActiveX控件不会在“链接单元格”中使用表单引用),所以我已经解决了指向命名的范围。 这又重新提出了我所看到的问题,在这个问题出现之前,我的许多解决方法都处理了其他症状。 我能够通过创build另一个“停滞”的命名范围来解决这个问题,我将更新引用来指向原来的命名范围,当它被我的其他macros更新,从而阻止它重新计算(和重置我的列表框)。 希望这对某人有帮助。 box1:LegSections2Check Private Sub LegSections2Check_MouseUp(ByVal Button As Integer, _ ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Application.EnableEvents = False Application.ScreenUpdating = False Call SyncChoices(Sheets("Loads")) Retain_Selections […]

需要VBA循环引用一个包含所有表名称的命名范围

我有一段粗略的代码,它把一些数据从一个表格复制到另一个表格,并且可以在单元格中find从中复制数据的表格名称。 但是,工作表的数量正在增加,并且为工作表名称创build了一个dynamic命名范围,并且希望为dynamic范围内的所有工作表执行以下代码。 我的代码如下所示: Calculate ' get the worksheet name from cell AA3 Worksheets(Range("AA3").Value).Activate ' Copy the data Range("A1:A1500").Select Selection.Copy ' Paste the data on the next empty row in sheet "Artiklar" Sheets("Artiklar").Select Dim NextRow As Range Set NextRow = Range("A65536").End(xlUp).Offset(1, 0) NextRow.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 现在,我想有一个像循环参考dynamic范围,但我无法得到它的工作,因为VBA真的不是我的一杯茶…所以,而不是参考AA3,AA4等我想引用包含AA3,AA4 …. AAx数据的命名范围。 指定的范围也可能包含空白单元格,因为它是AA3中的数组公式的结果…. AA150。 谢谢! /弗雷德里克

Excel结构化引用dynamic表名

我现在已经呆了一个小时了,而且我最终还是回到了使用INDIRECT,我宁愿避免。 我觉得必须有一个简单的方式来使用表格格式来完成这个很干净,但我不明白! 我有一张这样的表格,我希望右边的黄色区域根据左上angular的橙色单元格中的值显示左侧可用选项中的数据。 顶部表格被称为tPeople,底部表格被称为tPlaces。 所以如果tPeople进入单元格,我希望该表的数据在黄色区域显示。 目前,我已经设置了一个命名范围的rPeople和rPlaces来使这个间接的工作,但我宁愿实际使用该表,不使用间接如果可能的话。 = INDEX(INDIRECT($ E $ 1),$ F2,G $ 1) 谢谢!

如果最后一个条目被剪切,则Excel 2013剪切并插入到VBA中不会调整命名范围的大小

我有一个电子表格,其中有一个名为“列表”的工作表,其中包含一些命名范围。 这些命名的范围是同事的团队。 我已经设置了一个命令button,一旦按下它将采用“H30”(同事名称)中input的值和H31(pipe理员名称)中的值,并将select团队名单中的同事名称,剪切并插入进入经理人员进入“H31”(这是为了方便pipe理人员移动到其他团队)。 这个我已经设置好了,并且工作正常,Excel会自动调整命名范围的大小,以便与它们绑定的所有function(即combobox等)仍然正常工作。 但是,当同事是队中最后一名同事时,我遇到了一个问题。 在VBA中使用剪切/插入不会调整它们被切割的命名范围的大小,在结尾留下空白区域。 我怎样才能让命名的范围仍然适当地resize,因为如果同事的姓名从命名范围的其他任何地方切下来的话。 有一个简单的方法来做到这一点? 如果不是以下是我想要做的方法,但不知道如何: 查找“H30”中的条目出现在哪个命名范围内 If语句检查“H30”中的值是否与命名范围中的最后一个条目匹配(我正在工作) 切割入口后调整范围(也有工作) 确定同事来自的范围是我的主要问题,我已经尝试使用像以下循环遍历每个命名的范围: Dim nm As Name For Each nm In Worksheets("Lists").Names If Not Intersect(Range("H30"), nm.RefersToRange) Is Nothing Then 'Do things End If Next nm 我从其他地方的例子中得到了上面的例子,但似乎没有find范围。 也不会产生错误。 有没有其他的方法可以find值的范围?

使用命名单元格创build一个范围

我需要在vba中使用命名单元格创build一个范围。 到目前为止,我有以下不工作; Dim pasteRange As Range Set pasteRange = Range(firstRow, 11) pasteRange.Value(11) = slabTemplateSheet.Range("slabTemp").Value(11) firstRow是一个整数。 slabTemplateSheet引用工作表,slabTemp是所述表中的命名范围。 我认为这将是相当简单的,因为我的粘贴范围只有1行和11列(即连续11个单元格),但我无法得到它的工作。 在你的答案,假设有一个,你也可以请给我粘贴多个行和列的能力,所以例如,如果slabTemp引用A1:F16 编辑 :我没有说清楚我在做什么。 我在工作表slabTemplateSheet中有一个名为slabTemp的命名范围。 在另一个工作表中,我想复制该范围,包括格式,然后粘贴。 我听说使用复制/粘贴function很慢,所以我发现上面的属性,应该做同样的事情,但速度更快(我没有testing过)。 来源,Durgesh的答案在这里: 快速的方法来复制格式在Excel中 在新表中,我需要将其粘贴到要创build的范围中(这是我不知道该怎么做的) 所以Range(firstRow,11)是指保存为firstRow的整数(行号),11是列号。 但是这不起作用。 我想我的问题是,我如何创build一个范围使用名称,而不是说Range(“A1:G6”),而是范围(firstRow1:secondRow:6) 再次感谢!

在工作表公式中引用命名范围的问题

我在使用Microsoft Office 365 Business的Excel中的公式中的命名范围时遇到了一些问题。 这是几年前我经常做的事情,但是现在我难以理解我在做什么错了…我假设一些function已经改变了随后的版本的Excel,但想检查。 我有一个vlookup例如像VLOOKUP($D11, $A$2:$B$14, 2, 0) VLOOKUP($D11, LookupTable, 2, 0) VLOOKUP($D11, $A$2:$B$14, 2, 0) ,我想要改变使用表数组中的命名范围,例如像VLOOKUP($D11, LookupTable, 2, 0) 。 然而, VLOOKUP($D11, LookupTable, 2, 0)返回一个错误“这个公式存在问题,而不是尝试input一个公式…”。 我已经检查过,没有命名区域的公式工作正常,并且命名区域本身已经设置在正确的列上,范围的范围被设置为工作簿。 错误信息向我build议范围没有被解决,只是被视为一个string? (我已经尝试了一些东西,例如指定工作表> Lookups!LookupTable,但仍然是同样的问题) 这里的文件的例子

Excel条件格式化时删除列创build#Ref

我有以下条件格式在工作簿中使用命名区域。 =INDEX(CalculatedMonth1,ROW($A1))<INDEX(ForecastMonth2, ROW($A1)) =INDEX(CalculatedMonth1,ROW($A1))>INDEX(ForecastMonth2, ROW($A1))+INDEX(ForecastMonth3, ROW($A1))+INDEX(ForecastMonth4, ROW($A1)) 他们工作得很好,除非有人删除一列,然后条件格式公式更改为: =INDEX(CalculatedMonth1,ROW(#REF!))<INDEX(ForecastMonth2, ROW(#REF!)) =INDEX(CalculatedMonth1,ROW(#REF!))>INDEX(ForecastMonth2, ROW(#REF!))+INDEX(ForecastMonth3, ROW(#REF!))+INDEX(ForecastMonth4, ROW(#REF!)) 有没有办法阻止$ A1转换为#REF! 还是有另一个公式,我可以使用我的条件格式,不会给我这个麻烦? 我唯一的条件是它必须使用那些命名的范围。

带有dynamic命名范围的SAS PROC导入

我有一个包含数据库信息的工作簿,这些信息分成了多个要导入SAS进行进一步操作的选项卡。 这些数据库表的维度因标签而异,此外,在整个项目任期内,表格的维度可能会有所变化。 因此,我已经在每个选项卡中设置了dynamic命名范围,这样它就TBL_SHEET1我需要的确切尺寸,即我的命名范围TBL_SHEET1 =OFFSET(SHEET1!$A$1,0,0,COUNTA(SHEET1!$A:$A),COUNTA(SHEET1!$1:$1)-2) 现在的SAS问题是,当我使用proc导入代码时,似乎并不认为这些命名范围“存在”并在日志中返回一条失败消息。 有没有解决的办法? 还是SAS与Excel通讯的限制? (作为一个侧面说明,我不只是导入整个选项卡的原因是因为有一些额外的列右侧,我想排除从我的导入) 我的SAS导入代码: proc import out= rwork.SHEET1 datafile = "C:\My User\Sample.xlsx" dbms= excel replace; range=TBL_SHEET1.; getnames=yes; run;

为每个工作表创build一个命名范围列表

有很多相似的东西,但不完全是我的问题。 我试图根据选项卡名称的详细信息来命名每个选项卡的范围。 我已经将标签名称放在一个工作表中,现在要根据这些单元定义命名范围。 我不能让它喜欢我的范围名称与variables。 Sub Test() Dim x As Integer Dim y As String Dim YY As String Dim z As String Dim ZZ As String For x = 1 To Worksheets.Count Sheets("List of Tab Names").Activate y = Cells(x, 1).Value z = Cells(x, 2).Value YY = y & "Data2" ZZ = z & "YoA2" Sheets(y).Activate […]