我尽可能多地在线查看(微软支持网站除外,因为某些原因在工作时被阻止).我试图简单地跳过一个错误.我在这里写的代码是简化的,但应该以相同的方式工作.
我的代码应该做什么: 我的一个潜艇在循环中创建形状并命名它们(btn_1,btn_2等).但在创建它们之前,它会调用一个尝试删除它们的子类,以免创建重复项.该子循环遍历(btn_1,btn_2等)并使用以下方法删除形状:
for i = 1 to (a certain number)
Set shp = f_overview.Shapes("btn_" & i)
shp.delete
next
Run Code Online (Sandbox Code Playgroud)
当然,它不会被删除,因为它根本就不存在.我发现在大多数情况下,推荐的修复是在设置形状之前添加(在错误恢复下),因为我得到一个错误,说它不存在.我已经在循环内部,循环之前等尝试过它,如下所示:
for i = 1 to (a certain number)
On Error Resume Next
Set shp = f_overview.Shapes("btn_" & i)
shp.delete
next
Run Code Online (Sandbox Code Playgroud)
据我所知,如果形状不存在,它应该循环通过,但是我仍然得到相同的错误,无论我是否添加On错误恢复下一个!我究竟做错了什么?
编辑:形状确实存在时没有错误.
是)我有的
我有一个包含零件号的文件和每个零件的几个供应商.共有1500个零件,每个零件有20个可能的供应商.为简单起见,我们假设部件列在A列中,每个供应商在此之后占据一列.供应商下的值是手动输入的,但并不重要.
在另一个工作表中,我有一个从Access数据库导入的部件列表.导入零件清单,但不导入供应商信息.在这两种情况下,每个部分只出现一次.
我想做的事
我只想将第一张表中的供应商信息与导入列表中的部件相匹配.现在,我有一个功能,它通过供应商遍历列表中的每个部分,将供应商信息复制到一个数组中,在导入的部件列表中找到部件号(总是有一个唯一匹配)并将数组复制到它旁边(内有供应商信息).有用.不幸的是,每次使用它时,find函数都会显着减慢.我知道它是通过各种测试的罪魁祸首,我无法理解为什么它减慢速度(从每秒200次循环迭代开始,减慢到每秒1次并且Excel崩溃).我可能有某种泄漏?文件大小始终为7mb.这里是:
Function LigneNum(numAHNS As String) As Integer
Dim oRange As Range, aCell As Range
Dim SearchString As String
Set oRange = f_TableMatrice.Range("A1:A1500")
SearchString = numAHNS
Set aCell = oRange.Find(What:=SearchString, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
'We have found the number by now:
LigneNum = aCell.Row
Exit Function
Else
MsgBox "Un numéro AHNS n'a pas été trouvé: " & SearchString
Debug.Print SearchString & " not found!"
LigneNum = 0 …Run Code Online (Sandbox Code Playgroud) 警告:复杂情况需要文本墙
我有什么数据
在表A中,我在A列中有字母数字,有时在B,C,D列中有供应商.
colA colB colC colD
H-19328 SupA SupB SupA
H-12801 SupC SupD
H-32829
H-23123 SupB SupC
....... .... .... ....
Run Code Online (Sandbox Code Playgroud)
在表B中,我在A列中有字母数字,在B列中有1个供应商.我还在下一栏中有一堆其他信息.
colA colB colC colD
H-19328 SupA stuffs stuffs
H-52601 SupA stuffs stuffs
H-3279 SupA stuffs stuffs
H-4987123 SupB stuffs stuffs
....... .... ...... ......
Run Code Online (Sandbox Code Playgroud)
在表A中,字母数字编号在列表中是唯一的.表A中的数字在表B中可能有也可能没有匹配的数字,反之亦然.即使数字匹配,供应商也可能匹配,也可能不匹配.
我想做的事
对于表A中的每个数字,我想检查表B是否与关联的供应商保持该号码.例如,对于第一个数字H-19328,我将检查表B是否具有:
colA colB colC colD
H-19328 SupA stuffs stuffs < This could match twice as it was twice in A
H-19328 SupB stuffs stuffs
Run Code Online (Sandbox Code Playgroud)
我不知道数字/供应商组合是否匹配,如果匹配,我不知道它将匹配多少次.我想从其他列C和D中的表B中检索值.
我有什么代码
我将表A中的值放在一个字典中.键是数字,供应商信息是与每个键绑定的数组.这本词典效果很好.问题不在于词典,如果你对他们不好,你仍然可以帮助我.
现在我有一个循环,将每个键+供应商与表单b列表相匹配,并返回匹配的次数.为了消除混淆,Dict_Sup是词典.Dict_sup.items(1)是一个包含供应商的数组.Dict_sup.items(1)(0)是该数组的第一个条目.Dict_sup.items(1)(supcount)是该数组的最后一个条目.
For i = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在公式栏中创建一个自定义右键单击菜单(当您在单元格中右键单击时出现的那个,例如键入).我已经设法在我的右键单击中获取了我想要的按钮,但我找不到如何确定光标在单元格内的位置.
例如,如果光标位于单元格中的第5个字符之后,如何在BeforeRightClick事件发生之前或期间确定?我发现的唯一问题是相反的问题; 使用SendKeys将光标放在单元格的特定部分:
'===================================================================================
'- MOVE CURSOR IN THE FORMULA BAR AS REQUIRED
'- Brian Baulsom September 2007
'===================================================================================
Sub test()
Dim c As Integer
c = 3
'------------------------------------------------------------------------------
Range("A1").Select ' select cell
SendKeys "{F2}", True ' activate formula bar. cursor is to right of contents.
DoEvents
'------------------------------------------------------------------------------
'- move cursor 3 characters to the left in the formula bar
'- or in the cell if Tools/Options/Edit .. "Edit directly in cell" is checked
SendKeys "{LEFT " & CStr(c) & …Run Code Online (Sandbox Code Playgroud) 我想做什么 我是一个完整的Java初学者,昨天开始基础知识.我安装了Eclipse,我正在尝试制作一个学校校长菜单,该菜单可以列出学校里所有学生和教师的名单(并添加新的学生和教师,但这是为了以后).现在我只想展示现有的学生,因为我没有创建任何教师.
我拥有的 目前我已经创建了我的学生课程:(如果您看到任何错误或错误的表格,请告诉我!)
public class Student {
String name;
int age;
String program;
public Student(String StudentName){
this.name = StudentName;
}
public void PrintInfo(){
System.out.println(name + " is a " + age +" year old student in " + program);
}
public static void main(String[] args) {
}
}
Run Code Online (Sandbox Code Playgroud)
我也有这个菜单类,首先要求学生群体:
import java.util.Scanner;
public class Menu {
public static void populate(){
Student s01 = new Student("David");
s01.age = 12;
s01.program = "Elementary School";
s01.PrintInfo(); //******I would like to remove this part****** …Run Code Online (Sandbox Code Playgroud) 我在包含工作簿中所有可见工作表的功能区中有这个下拉列表。用户可以在其中选择一个工作表以跳转到它。这很重要,因为此工作簿中有大量工作表。不幸的是,当工作表的名称很长时,它不会完全显示。我想让它更宽。
我使用 Microsoft Office 的 CustomUI 编辑器使用我不太熟练的 XML 技能创建它。这是代码的一部分:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="InitS3Ribbon">
<ribbon>
<tabs>
<tab id="s3Tab" label="S3 Menu">
<group id="grGeneral" label="General">
<dropDown id="navigation" label="Navigation" getItemCount="GetNavigateItemCount" getItemLabel="GetNavigateLabel" onAction="MenuNavigate" getSelectedItemIndex="SetNavigateIndex" showLabel="true" />
<button id="bShowHideSheet" imageMso="PivotPlusMinusButtonsShowHide" label="Show/Hide sheets" size="normal" onAction="MenuShowHideSheets" />
<button id="bPreviousPage" imageMso="LeftArrow2" label="Previous sheet" size="large" onAction="MenuPreviousSheet" />
<button id="bNextPage" imageMso="RightArrow2" label="Next sheet" size="large" onAction="MenuNextSheet" />
</group>
Run Code Online (Sandbox Code Playgroud)
我发现这个资源说它可以用SizeString属性进行更改,但我什至不确定如何或在何处将其包含在我的代码中。在我看来它应该在 VBA 部分?我不确定我是否理解,我希望得到指导。我不确定现在是否编辑 XML 或 VBA 以及如何编辑。
我只是想使用VBA在工作表文本框中为某个特定字符添加下划线.它应该非常简单,我可以毫无问题地使用Bold和Italic.
我有以下子
Sub ew()
Dim txt1 As Shape
Set txt1 = Sheet1.Shapes("txt_1")
txt1.TextFrame.Characters.Text = "Bold and Underline this"
txt1.TextFrame.Characters.Font.Bold = True
txt1.TextFrame.Characters.Font.Italic = True
txt1.TextFrame.Characters.Font.Underline = True
End Sub
Run Code Online (Sandbox Code Playgroud)
代码在最后一行失败,这非常奇怪,因为它适用于前两行.错误(1004)表示"无法定义Font属性的下划线功能".
要重新创建问题,请将我的子文件转换为新的Excel文档并创建名为"txt_1"的文本框,这就是运行它所需的全部内容.
如果有人知道它失败的原因,请帮忙!