barriers / 阅读 / 详情

这excle vba有什么问题,什么运行不了

2023-06-08 07:58:58
TAG: excle
共4条回复
cloud123

问题出在数组下标上,arr数组赋值了E2:F52单元格的值,最大下标为51,而你循环变量从1到52,超出了最大下标所以报错。修改方法有,将 For i = 1 To 52 Step 1 改为 For i = 1 To 51 Step 1 即可;brr也存在同样问题

瑞瑞爱吃桃

请增加两个图,一是执行程序报错的图,二是报错的时候点【调试】按钮之后有黄色条的图,有了这两个图才方便进一步的分析原因。

max笔记

arr = Sheet10.Range("e2:f" & 52)

brr = Sheet3.Range("e2:l" & 1000)

和下面的冲突,把上面的52,1000,修改一致,或大点

For i = 1 To 52 Step 1

For j = 1 To 1000 Step 1

我不懂运营

如何找你,阳光上的桥

相关推荐

brr是哪个国家货币简称

Bhutan Ngultrum,也就是不丹努尔特努姆
2023-06-07 14:33:351

尼康850使用时出现Brr是什么原因?

是ERR,你用了什么镜头是没拍屏幕上就显示ERR还是拍过后显示ERR?这个一般是光圈问题,你用了老D头的话光圈环没有调到最小光肩屏就报ERR,如果是G头拍过一张后会报ERR就是光圈拨杆哪里出问题了一般是机身光圈组件工作出问题了
2023-06-07 14:33:442

佳能550d相机出现brr带表什么

没有brr,相机的错误信息只有Err,就是Error的缩写,报错的意思。出现这个闪烁的提示,可以关机,重新启动或许错误就消失了。如果持续报错,就要拿去检修了。
2023-06-07 14:33:531

请VBA高手解析一下,这个brr(i)=0代表什么

这个是一个定义动态数组即动态定义数组brr有一到4行,0到i列因为动态数组只能列动态,用preserve,是在原数组的基础上增加,不会改变原数组的数据。一般来说你的这句代码前会有一个判断如ifxxx=xxxtheni=i+1redimpreservebrr(1to4,0toi)然后这里会写入数据到数组中如brr(1,i)=xxxbrr(2,i)=xxxbrr(3,i)=xxxbrr(4,i)=xxxendif
2023-06-07 14:34:201

brr意思是感觉冷的意思吧,小学课本上的,怎么读啊,请给音标,网上查不到啊。

这个应该是语气词,你打斗的时候是什么样的声音,它就读什么
2023-06-07 14:34:292

如何一边说话一边弹舌、如何发出弹舌brr

弹舌-终极秘诀(适用于西语,俄语,意大利语,葡萄牙语)以下是针对的人是一直没找到感觉的,请好好研究,一定要能弹出来的。第一步,思想上要开窍。弹舌有个过程的,就是从无声弹舌到有声弹舌,从单个字母R,RR会弹,到跟元音相接在一起弹。而这个过程是训练必经的,可是以前总是没有人强调这一点。以为一上来就是要有声弹舌,一上来就要跟元音在一起弹,所以,总是失败。第二步,无声弹舌,把舌头吹软。深深吸入一口气,用舌头死死顶住上腭(上腭就是在上面的牙齿后面一点,有肉的地方),用舌头把口腔密封起来,不能留有任何的缝隙(在这种情况,你的气是一丁点都不能出口腔出来了,封死了嘛)。然后把你刚才吸的那口气用力去吹动舌头,把封死口腔的舌头吹开一点点。但是在吹的同时舌头还是要死死的贴紧,你就会发现大气流把舌头冲开了,动起来了。可是由于的舌头死死地贴住,气流一冲开,舌头又把口腔封起来了,随便你不停地喷气出来,你的舌头就不停地动了。有感觉了不?如果无声弹舌找到感觉了,就成功了99%了。随着感觉的来临,死死贴紧的舌头就学着放松点,悠着点,慢慢地学着用很小的气流都能把密封的口腔吹开。也就是舌头要变软……越来越软……气流也越来越小……第三步,有声弹舌,把你的声音发出来。舌头刚开始软,能弹起来,并不意味着你就能一边弹一边发出声音,ra-ri-ru-re-ro,ar-ir-ur-er-or,如此循环反复训练,要有耐心,成功就在咫尺。练上一阵子,也许是几天,也许是一个月,声音就出来了。喉咙有声音发出来的感觉很好吧~~~~
2023-06-07 14:34:361

vba 怎么把1行多列的数组arr添加进多行多列的数组brr, 2个数组列数相同

"一个数组不能直接给另一个数组赋值,也就是不能brr=arr;但是可以为数组的某个元素复制,比如brr(1,3)=arr(1,3);另外一个方法是把一个数组一下子赋值给一个变体型变量,比如下面就是合理的:dimbrr,arr(1to1,1to20)然后给arr各个元素赋值,或者从你的Excel文件中某一区域,一下子读取出来。然后就可以brr=arr这是可以的,因为brr是变体型。补充:一个数组不能直接给另一个数组赋值,也就是不能brr=arr;但是可以为数组的某个元素赋值,比如brr(1,3)=arr(1,3);另外一个方法是把一个数组一下子赋值给一个变体型变量,比如下面就是合理的:dim brr,arr(1 to 1,1 to 20)然后给arr各个元素赋值,或者从你的Excel文件中某一区域,一下子读取出来。然后就可以brr=arr这是可以的,因为brr是变体型。"
2023-06-07 14:34:451

vba 数组之间brr(1) = arr(1)相互交换数据出错,下标越界?

你看一下你的赋值语句。你是直接把变量brr和arr 赋值为一个range对象,你F8单步执行程序 变量赋值完成后,你在调试菜单里添加监视里看一下brr和arr 的值 就可以看明白了。另外:对range对象是赋值按二维数组的规则赋值,也就是brr(1,1)=arr(1,1)
2023-06-07 14:34:531

各位大虾,请问一下vba Cells(3, 3).Resize(, 1) = brr是什么意思,谢谢

就是将数组brr里的数据,导入到以C3单元格为起点的区域中去。是一种简单有效的写法。
2023-06-07 14:35:111

GPIOx_BSRR 这个寄存器的功能既有设置又有清除,为什么还要GPIOx_BRR这个呢?什么区

看看数据手册就知道了
2023-06-07 14:35:193

漫威m-9101brr表针怎么调

漫威m-9101brr表针调整方法:1、首先,按住左下键三秒不放。2、再突然一松一按再一松,这个时候如显示屏所示,秒显示在跳动。3、接着按右下键进行数值调整即可。
2023-06-07 14:35:251

请教STM32知识点:GPIOA->BSRR 与GPIOA->BRR两个管脚寄存器

是针对同一个功能但是状态不同,BSRR是置GPIOA为高对应于一个模式,BRR清除这个模式
2023-06-07 14:35:322

请问GPIOA->BRR|=0x0001中的>和|是干嘛的

箭头表示结构体的成员,竖杠表示“或”运算,与1相“或”可以置1GPIOA是结构体指针,而不是结构体实体
2023-06-07 14:35:502

VBA,请说明每一行的意思。

Sub 发货提取()Dim r%, i%, m%Dim arr, brr(1 To 10000, 1 To 6) "声明一个variant类型的arr变量和一个定长数组Dim ws As WorksheetFor Each ws In Worksheets "遍历当前工作簿下所有的工作表If ws.Name <> "发货明细" Then "如果ws所引用的工作表名称不是"发货明细"With wsr = .Cells(.Rows.Count, 1).End(xlUp).Row "记录下每个工作表已使用的的最后一行的行号arr = .Range("a1:k" & r) "将工作表的已用区域赋值给arr变量后arr就变成了数组For i = 3 To UBound(arr) "开始遍历数组,将arr里面的内容填写到brr数组里面m = m + 1brr(m, 1) = mbrr(m, 2) = arr(1, 1)brr(m, 3) = arr(i, 1)brr(m, 4) = arr(i, 4)brr(m, 5) = arr(i, 5)brr(m, 6) = arr(i, 9)NextEnd WithEnd IfNextWith Worksheets("发货明细").UsedRange.Offset(1, 0).ClearContents "清空已用区域的所有内容(但第一行的标题除外,因为使用了offset(0,1)让开了第一行).Range("a2").Resize(UBound(brr), UBound(brr, 2)) = brr,将brr数组 填充到工作表中End WithEnd Sub
2023-06-07 14:35:581

cad用打断于点命令后,按空格键就变成打断命令了,这严重影响了本人犀利的键盘操作,

执行打断命令break的标准做法是,首先,break 然后选择对象 你点击对象的同时 系统会自动认为该点就是第一个打断点 如果你再次在对象上点击的话 就会把对象打出豁口 如果你想要在原地打断的话 首先break 点选对象 然后输入f 重新指定打断点 然后当系统提示制定第二个打断点的时候 直接输入@ 就可以在一点打断了
2023-06-07 14:36:061

stm32中GPIOx_BSRR和 GPIO_xBRR寄存允许对任何GPIOx进行读更改的独立访问;

这句话出自何处/?来个完整的看看
2023-06-07 14:36:324

白癜风接吻传染吗 ? brr

白癜风属于慢性的皮肤病,不具有传染源,是不会传染的。但是白癜风本身有一定的扩散性和扩大性。建议早日治疗,以免病情加重,白斑扩散,耽误最佳治疗时间。到专业的白癜风医院检查治疗,更可靠!
2023-06-07 14:36:391

关于VBA宏的问题

你应该是点了VBA代码编辑,解决这个问题可以在工具-选项-安全性-个人信息选项,这里不要打勾选择,保存文件时就不会弹出这个对话框了。
2023-06-07 14:36:584

求助这个excel代码解析,每一行都是什么意思?

将活动工作表的A4到B列的最后的区域,按照A列的内容,拆分到与A列内容相同名的工作表中去。
2023-06-07 14:37:181

库存报警VBA代码

库存报警VBA代码为:Sub asdDim rng As Range, rng1 As Rangear = [b65536].End(3).RowReDim arr(1 To ar, 1 To 6): ReDim brr(1 To ar, 1 To 6)Range("o4:o" & ar).Interior.ColorIndex = 35aaa = Range("A4:s" & ar)For i = 1 To UBound(aaa)If aaa(i, 15) < aaa(i, 16) Thenarr(t + 1, 1) = aaa(i, 2)arr(t + 1, 2) = aaa(i, 3)arr(t + 1, 3) = aaa(i, 15)arr(t + 1, 4) = aaa(i, 16)arr(t + 1, 5) = aaa(i, 18)arr(t + 1, 6) = aaa(i, 19)t = t + 1If rng Is Nothing Then Set rng = Cells(i + 3, 15) Else Set rng = Union(rng, Cells(i + 3, 15))End IfIf aaa(i, 15) > aaa(i, 17) Thenbrr(t1 + 1, 1) = aaa(i, 2)brr(t1 + 1, 2) = aaa(i, 3)brr(t1 + 1, 3) = aaa(i, 15)brr(t1 + 1, 4) = aaa(i, 17)brr(t1 + 1, 5) = aaa(i, 18)brr(t1 + 1, 6) = aaa(i, 19)t1 = t1 + 1If rng1 Is Nothing Then Set rng1 = Cells(i + 3, 15) Else Set rng1 = Union(rng1, Cells(i + 3, 15))End IfNextrng.Interior.ColorIndex = 3rng1.Interior.ColorIndex = 8With Sheets("低限报警单").Range("e4:j65536").ClearContents.[e4].Resize(UBound(arr), 6) = arrEnd WithWith Sheets("报警上限单").Range("e4:j65536").ClearContents.[e4].Resize(UBound(brr), 6) = brrEnd WithEnd Sub 根据自己需要设置的库存量预警修改相应的语言即可。
2023-06-07 14:37:371

VBA问题求帮忙

能使用公式解决的问题,还是不要使用 VBA 代码为好!比如,在 B1 单元格内输入下面的公式:=IF(ISERROR(FIND("_",A1,1)),A1,LEFT(A1,FIND("_",A1,1)-1))然后把公式向下复制即可。
2023-06-07 14:37:543

如何判断数组内的各元素相等

dimx,n,maslong"n为数组元素数,m为判断变量,x为循环变量dimarr(1to10),brr(1to10)‘以10个元素举例n=10m=0forx=1tonifarr(x)=brr(x)thenm=m+1"一个元素相同m累计+1endifnextxifm=nthen"如果元素相同数量与数组元素总数量相同,则清空数组brrerasebrrendif
2023-06-07 14:38:251

编程:先读入十个整数,从小到大排列;再读入一个数k,并将k插入数列中,插入后再从小到大排列 冒泡

#include <iostream>int main(){ using namespace std; int a[11]; int b; cout<<"请输入10个整数"; for(int i=0;i<10;i++) cin>>a[i]; for(int k=0;k<9;k++) { for(i=0;i<9;i++) { if(a[i]>a[i+1]) { b=a[i]; a[i]=a[i+1]; a[i+1]=b; } } } for(i=0;i<10;i++) cout<<a[i]<<" "; cout<<endl; cout<<"请输入1个整数"; cin>>a[10]; for(k=0;k<10;k++) { for(i=0;i<10;i++) { if(a[i]>a[i+1]) { b=a[i]; a[i]=a[i+1]; a[i+1]=b; } } } for(i=0;i<11;i++) cout<<a[i]<<" "; return 0;}
2023-06-07 14:38:365

SCI BRR是什么意思

SCI是美国《科学引文索引》的英文简称,其全称为: Science Citation Index,它是世界三大检索系统(EI,SCI,ISTP)之一,是由美国科学情报研究所(Institute for Scientific Information,简称ISI)1961创立并出版的一部世界著名的期刊文献检索工具,它是根据现代情报学家加菲尔德(Engene Garfield)1953年提出的引文思想而创立的。 SCI中的所有论文都是从ISI巨大的自然科学资料库(SCI date base)中选取的,这个资料库的文献源主要是期刊。收录全世界出版的数、理、化、农、林、医、生命科学、天文、地理、环境、材料、工程技术等自然科学各学科。所选用的刊物来源于94个类、40多个国家、多种文字,这些国家主要有美国、英国、荷兰、德国、俄罗斯、法国、日本、加拿大等,也收录一定数量的中国刊物,并包括少量的专著。 SSCI社会科学引文索引》(SSCI) 《社会科学引文索引》(Social Science Citation Index,简称SSCI ,http://sunweb.isinet.com)为美国科学情报研究所建立的综合性社科文献数据库,涉及经济、法律、管理、心理学、区域研究、社会学、信息科学等。收录50个语种的1700多种重要的国际性期刊,累计约350万条记录。
2023-06-07 14:38:531

运行时错误9下标越界提示让调试brr(k,j)=arr(i,j)怎么调?

错误不在这一段程序里,在你的用户管理窗体里,应该是初始化的时候数组下标越界了
2023-06-07 14:39:111

excel代码执行提示下标越界,请大佬们看下,以下代码什么问题,帮调以下

brr = Range("C2:C19")后,数组是这样的:所以,你要用brr(j,1)来使用这个数组
2023-06-07 14:39:181

strcmp函数后面可以用取址符吗

二叉排序树strcmp()函数Sandm *原创关注0点赞·967人阅读有时我们经常会比较俩个字符串之间的内容,而字符串的定义是通过数组定义或指针定义,但无论是哪种,在比较字符串内容时,都会用到指针,即:对于数组定义:由以上代码可知,因为arr和brr都是指针,所以arr!=brr检查的不是俩个字符串的内容是否相等,而检查的是俩个字符串的地址是否相同,因为arr和brr储存在不同的位置,所以这俩个地址不可能相同,所以无论输入什么,即使输入的字符串内容相同,它也会出现错误。对于指针定义则没有这种问题,即:—————————————— —分割线————————————————2. 所以,为了解决数组定义出现的问题,引入了strcmp()函数strcmp()有俩个参数,因为该函数比较的是字符串,不是字符,所以其参数应该是字符串(如“apples"和“A”,其本质是地址),而不是字符(如"A")它比较的是字符串,不是整个数值,也不是字符如果俩个字符串开始的几个字符相同,则strcmp()函数会依次比较每个字符,直到发现第一对不同的字符为止,然后返回相应的值strcmp()的返回值要么是正数,要么是负数,要么是0,它返回一个什么类型的数是由它的参数所决定的。(具体解释见博客strcmp函数中的ASCII)大多数情况下,strcmp()返回的具体值并不重要,我们只在意该值是0还是非0(即比较的俩个字符串是否相等
2023-06-07 14:39:431

VBA程序的redim应用

arr = .Range("g1:g" & r) 以点开头的去找with就行这里对应的with是With Worksheets(4)也就是说Worksheets(4).Range……ReDim brr(1 To UBound(arr), 1 To 1)从新声明brr是从1开始到arr第一列个数结束、从1开始到1结束的二维数组程序里面arr获得的是Range("g1:g" & r),那么拽就是一excel里的一个竖列,有几个就是几个呗arr(i, 1) , brr(i, 1) 这俩有什么不懂的?
2023-06-07 14:39:502

EXCEL 统计出勤的公式

5270本月出勤次数为:=countif(b2:b26,"5270")其他同理可得。
2023-06-07 14:40:004

跨表格运行宏?

从你的描述来看,你希望在SHEET2上添加一个按钮,点击按钮后可以运行拆分SHEET5的宏。我理解的对吗?在这种情况下,你需要做两件事:确保你在工作簿中调用宏的按钮已经创建并链接到宏。确保宏引用的是正确的工作表,并且宏可以正确执行操作。首先,确保你已经创建了一个按钮并链接到宏。在SHEET2中:转到“开发者”选项卡,如果你还没有显示此选项卡,请按照此链接显示:在 Excel 中显示 "开发者" 选项卡点击"插入",然后选择"按钮(表单控件)",并在SHEET2上绘制一个按钮。在"分配宏"对话框中,选择要链接到按钮的宏并单击"确定"。接下来,确保宏引用正确的工作表。根据你提供的代码,我进行了一些修改。请尝试以下代码:Sub 拆分数据()Dim arr, BRR(), i As LongDim ws As WorksheetSet ws = ThisWorkbook.Sheets("订单记录")arr = ws.Range("D2:D" & ws.Cells(ws.Rows.Count, "D").End(xlUp).Row)ReDim BRR(1 To UBound(arr), 1 To 1)For i = 1 To UBound(arr)BRR(i, 1) = Left(arr(i, 1), 2)Next iWith ws.Range("P2").Resize(UBound(arr)).ClearContents.Range("P2").Resize(UBound(arr)) = BRREnd WithEnd Sub这个修改后的代码明确设置了工作表“订单记录”,并使用了ThisWorkbook来确保宏从执行宏的工作簿中查找工作表。这样,在单击SHEET2上的按钮时,宏应该能够在SHEET5中正确执行操作。
2023-06-07 14:40:141

JAVA已知一个数组中的数有序排列,编程实现插入一个数后,依然有序,怎么操作?

有两种方法,代码都给你x0dx0a第一种,就是常规的想法,:建个数组,然后逐个比较,这应该也是出题人的考察点,但是这种题不适合在java理出,一般C语言愿意有这样的问题.x0dx0a x0dx0aimport java.util.Arrays;x0dx0apublic class $ {x0dx0a public static void main(String[] args) { Integer[] arr = { 11, 22, 33, 44, 55, 66, 77, 88, 99 };x0dx0a System.out.println("插入前:" + Arrays.deepToString(arr));x0dx0a Integer[] brr = insert(arr, 60);x0dx0a System.out.println("插入前:" + Arrays.deepToString(brr));x0dx0a }x0dx0ax0dx0aprivate static Integer[] insert(Integer[] arr, int num) {x0dx0a Integer[] brr = new Integer[arr.length + 1];x0dx0a int idx = 0;x0dx0a boolean hasInsert = false;x0dx0a for (int i = 0; i < arr.length; i++) {x0dx0ax0dx0aif (hasInsert) {x0dx0a brr[idx++] = arr[i];x0dx0a continue;x0dx0a }x0dx0ax0dx0aif (arr[i] > num) {x0dx0a brr[idx++] = num;x0dx0a hasInsert = true;x0dx0a }x0dx0a brr[idx++] = arr[i];x0dx0a }x0dx0a return brr;x0dx0a }x0dx0a}x0dx0ax0dx0a第二种就是利用java api里的方法,实现简单,但是效率不够,而且也违背了出题人的意愿,可做了解x0dx0a private static Integer[] insert(Integer[] arr, int num) {x0dx0a List data = new ArrayList();x0dx0a for (Integer a : arr) {x0dx0a data.add(a);x0dx0a }x0dx0a data.add(num);x0dx0ax0dx0aCollections.sort(data);x0dx0a return data.toArray(new Integer[0]);x0dx0a }
2023-06-07 14:40:211

简单的VBA函数求解?

截图不带行列号是无法解决问题的,假设sheet1表格的标题行在第6行,且第1行为非空行;(表格结构与位置和Sheet3保持一致):Sub chaxun()Dim d, arr, brr, crr(1 To 10000, 1 To 19)Dim i&, j&, k&, m%, mm&, n&Set d = CreateObject("scripting.dictionary")arr = Sheets("sheet1").UsedRangebrr = Sheets("sheet2").[a2].CurrentRegionFor i = 7 To UBound(arr) "sheet1表的标题行在第6行s = arr(i, 1)If Not d.exists(s) Thend(s) = iElsed(s) = d(s) & "|" & iEnd IfNext i"t = d.keys: tt = d.itemsFor k = 2 To UBound(brr)If d.exists(brr(k, 1)) Thentemp = Split(d(brr(k, 1)), "|")For m = 0 To UBound(temp)mm = mm + 1For n = 1 To UBound(arr, 2)crr(mm, n) = arr(temp(m), n)Next nNext mm = 0End IfNext kSheets("sheet3").[a7].Resize(UBound(crr), UBound(crr, 2)) = ""Sheets("sheet3").[a7].Resize(UBound(crr), UBound(crr, 2)) = crrEnd Sub
2023-06-07 14:40:282

brr 什么意思

一种对于身体感觉到冷的表达方式
2023-06-07 14:40:461

尼康相机出现brr是什么故障

尼康相机的错误信息只有Err,就是Error的缩写,报错的意思。出现这个闪烁的提示,可以关机,重新启动或许错误就消失了。如果持续报错,就要拿去检修了。
2023-06-07 14:40:541

vba中 crr(),brr(),arr() 什么意思?

前面crr没什么意思,只是起的名字()代表这个名字是个数组,数组个数不固定。
2023-06-07 14:41:031

vba中ReDim Preserve brr(1 To 4, 0 To i)的含义是什么?

这个不对吧;是这个思意吗redim Preserve(0 to 4) redim brr(0 to i)我的理解是定义代变量一个参数brr ;我写程序里都是这样理解去写的;一个数组,不确定有多少的时候用!
2023-06-07 14:41:323

vba中ReDim Preserve brr(1 To 4,0 To i)的含义是什么?

这个是一个定义动态数组即动态定义数组brr有一到4行,0到i列因为动态数组只能列动态,用preserve,是在原数组的基础上增加,不会改变原数组的数据.一般来说你的这句代码前会有一个判断如if xxx=xxx then i=i+1redim pres...
2023-06-07 14:41:421

vba中ReDim Preserve brr(1 To 4, 0 To i)的含义是什么?

这个是一个定义动态数组即动态定义数组brr有一到4行,0到i列因为动态数组只能列动态,用preserve,是在原数组的基础上增加,不会改变原数组的数据。一般来说你的这句代码前会有一个判断如if xxx=xxx then i=i+1redim preserve brr(1 to 4,0 to i)然后这里会写入数据到数组中如brr(1,i)=XXXbrr(2,i)=XXXbrr(3,i)=XXXbrr(4,i)=XXXend if
2023-06-07 14:41:511

Dim k, n, o As Long

Dim i As Long: Dim j As Long: Dim k As Long 表示其实是三行:Dim i As LongDim j As LongDim k As Long 这三行定义了3个变量。quit是一个代码的标签。在程序要跳转的时候要让程序跳到哪儿?这就是要跳到的地方的标记。
2023-06-07 14:41:591

stm32中“GPIOB->BSRR”这句话是什么意思?

GPIOB->BSRR = 0x01就是把GPIOB port 0升为高电平GPIOB->BRR = 0x01就是把GPIOB port 0降为低电平GPIOB->BSRR = 0x02就是把GPIOB port 1升为高电平GPIOB->BRR = 0x02就是把GPIOB port 1降为低电平GPIOB->BSRR = 0x04就是把GPIOB port 2升为高电平GPIOB->BRR = 0x04就是把GPIOB port 2降为低电平GPIOB->BSRR = 0x08就是把GPIOB port 3升为高电平GPIOB->BRR = 0x08就是把GPIOB port 3降为低电平
2023-06-07 14:42:081

Excel中的一段VBA代码解读

subtest()dimarr,brr,x&,y&arr=sheet1.usedrange‘把原数据赋值给数组arrredimbrr(1toubound(arr)*10,1toubound(arr,2))"定义一个数组行数是arr的10倍forx=1toubound(arr)fory=1toubound(arr,2)brr(x*10,y)=arr(x,y)nextynextxsheet1.range("A1").resize(ubound(brr),ubound(brr,2))=brr"把新数组写入工作表中endsub是否可以解决您的问题?
2023-06-07 14:42:291

用VBA字典实现查找两列数据

Private Sub CommandButton1_Click() "查询Dim n As Long, m As Long, j As Long, k As LongDim t As String, s As Stringn = Range("A1").End(xlDown).Rowm = Range("F1").End(xlDown).RowFor j = 2 To mt = Cells(j, 6).Values = Cells(j, 7).ValueFor k = 2 To nIf Cells(k, 1).Value = t And Cells(k, 2) = s ThenCells(j, 8).Value = Cells(k, 3).ValueCells(j, 9).Value = Cells(k, 4).ValueExit ForEnd IfNextNextEnd Sub
2023-06-07 14:42:371

谁能帮我详细解释一下这段VB代码的意思么?谢谢啦~

Sub Macro1() Dim a, arr, brr(1 To 2), crr(), t%, i&, j&, l&, d(1 To 2) As Object With Sheets("Sheet2") "仅sheet2有效 brr(1) = .Range("A3:D" & .Range("A65536").End(xlUp).Row) "选择单元格范围a3到d(a列末行的行号)给brr(1) brr(2) = .Range("f3:i" & .Range("f65536").End(xlUp).Row) "选择单元格范围f3到i(f列末行的行号)给brr(2) End With For l = 1 To 2 Set d(l) = CreateObject("scripting.dictionary") "建立字典对象 For i = 1 To UBound(brr(l)) For j = 2 To UBound(brr(l), 2) d(l)(brr(l)(i, 1) & Chr(9) & (j - 1)) = brr(l)(i, j) "brr(1)数组稍作处理加入字典 Next Next Next a = Array(10, 20) "建立一个a数组并赋值 arr = [a1].CurrentRegion "a1单元格延展区域给arr,这时的arr就是一个数组 ReDim crr(2 To UBound(arr), 0) "重新定义crr数组的大小 On Error Resume Next For i = 2 To UBound(arr) t = WorksheetFunction.Match(arr(i, 1), a, 1) "调用excell函数match crr(i, 0) = d(t)(arr(i, 2) & Chr(9) & arr(i, 3)) "crr从字典中获取 Next [d2].Resize(i - 2) = crr "从开始d2单元格开始再向下i-2行写入数组crrEnd Sub
2023-06-07 14:42:441

库存报警VBA代码

库存报警VBA代码为:Sub asdDim rng As Range, rng1 As Rangear = [b65536].End(3).RowReDim arr(1 To ar, 1 To 6): ReDim brr(1 To ar, 1 To 6)Range("o4:o" & ar).Interior.ColorIndex = 35aaa = Range("A4:s" & ar)For i = 1 To UBound(aaa)If aaa(i, 15) < aaa(i, 16) Thenarr(t + 1, 1) = aaa(i, 2)arr(t + 1, 2) = aaa(i, 3)arr(t + 1, 3) = aaa(i, 15)arr(t + 1, 4) = aaa(i, 16)arr(t + 1, 5) = aaa(i, 18)arr(t + 1, 6) = aaa(i, 19)t = t + 1If rng Is Nothing Then Set rng = Cells(i + 3, 15) Else Set rng = Union(rng, Cells(i + 3, 15))End IfIf aaa(i, 15) > aaa(i, 17) Thenbrr(t1 + 1, 1) = aaa(i, 2)brr(t1 + 1, 2) = aaa(i, 3)brr(t1 + 1, 3) = aaa(i, 15)brr(t1 + 1, 4) = aaa(i, 17)brr(t1 + 1, 5) = aaa(i, 18)brr(t1 + 1, 6) = aaa(i, 19)t1 = t1 + 1If rng1 Is Nothing Then Set rng1 = Cells(i + 3, 15) Else Set rng1 = Union(rng1, Cells(i + 3, 15))End IfNextrng.Interior.ColorIndex = 3rng1.Interior.ColorIndex = 8With Sheets("低限报警单").Range("e4:j65536").ClearContents.[e4].Resize(UBound(arr), 6) = arrEnd WithWith Sheets("报警上限单").Range("e4:j65536").ClearContents.[e4].Resize(UBound(brr), 6) = brrEnd WithEnd Sub 根据自己需要设置的库存量预警修改相应的语言即可。
2023-06-07 14:42:511

vba怎么球数组内各个元素个数

function arrCount(byref Arr,V as long) as long dim i as long for i=lbound(arr) to ubound(arr) if arr(i)=v then arrCount = arrCount+1 nextend function用法arrcount(数组名,1) 就会返回数组中1的个数
2023-06-07 14:43:102

excel vba请老师给标注下,我不懂,这是别人帮我做的一张表

全部太多了,可能多数你也是懂的,浪费重复打字没必要,你选个两三行追问,我给你详细讲讲
2023-06-07 14:43:282

求vba大神---两个sheet通过2列数据匹配返回值?

可以建立新的沟通渠道上传文件。私信我或评论后我私信你。
2023-06-07 14:43:502

EXCEL单元格内根据换行符排序?

没看懂什么规则,你举的例子只是把序号变一下而已这种建议最好有实际数据和例子来写
2023-06-07 14:44:383

在EXCEL中用宏合并同类项,并数量相加?

30 30 1 1 这行哪去了?Hi聊吧,那样解决得快点。
2023-06-07 14:45:084

vba中如何将数组中的值进行排序?(半小时内获答加100)

最简单的排序,须借助excel的函数:Sub SmallSort()Dim a(-1 To 3), i, b()For i = LBound(a) To UBound(a) a(i) = Int(Rnd * 10) "赋值给a()NextRows("5:6").Delete[a5].Resize(1, UBound(a) - LBound(a) + 1) = a"下面是排序方法,结果放在b()内ReDim b(1 To UBound(a) - LBound(a) + 1)For i = 1 To UBound(b)b(i) = Application.WorksheetFunction.Small(a, i) "Small为从小到大,large为从大到小Next[a6].Resize(1, UBound(b)) = bEnd Sub
2023-06-07 14:45:494