excel中vba代码的问题,请教一个思路即可

2024-04-27

1. excel中vba代码的问题,请教一个思路即可

1、将A列分列分开(分成四列)
2、D列用公式就可以得到结果(if 判断A、B、C三种计算公式)

excel中vba代码的问题,请教一个思路即可

2. Excel攻略第六十七招:VBA之代码操作


3. 绝对让你恍然大明白的Excel VBA之宏的介绍

本篇中来介绍Excel中的宏,对于即将使用VBA的人来说,应当对宏有一个基本的了解。其实
所谓的宏就是VBA代码保存下来的程序而已。
宏的基本作用就是:减少重复性的操作。
在Excel2013中调出宏主选项卡
使用宏我们首先要把宏的命令选项卡给调出来。操作如下:
(1)依次选择“文件”,“选项”,“自定义功能区”,“主选项卡”,如下:

如果右侧没有“开发工具”这一项,那就点击左侧的“开发工具”然后点击“添加”即可,然后再打钩并点击确定。
如果右侧有”开发工具“了,那就把它前面的勾打上,然后点击确定即可。
(2)做完以后,在选项卡区域就出现了“开发工具”了。如下:

这样我们就把宏选项卡给调了出来。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面我们就用一个小例子来看看怎么录制宏。
工资条的制作,如下:

我们想把上面的表格变成下面的样式:

这个其实就是不断的重复插入蓝色背景的一行单元格而已。我们利用宏来操作即可。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面是操作步骤:
(1)首先选中A1单元格,如下:

(2)在“开发工具”下选择”使用相对引用“,如下:

(3)点击”录制宏“,如下:

这个就是我们给宏起一个名字,并给它设置一个快捷键,带点备注性的说明文字。
然后点击确定。
(4)这就开始录制了。然后我们选中A1单元格对应的那一行,如下:

(5)然后右键选择复制,如下:

(6)然后选中第三行,如下:

(7)右键选择”插入复制的单元格“后,如下:

(8)然后选中A3单元格,如下:

(9)点击结束录制:

看到上面的”停止录制“按钮了吗,点击即可。
这样子,我们就完成了一个宏的录制,可以看到,我们这个宏将如何插入蓝色背景的行的步骤给
记忆了下来。下面我们就可以使用这个宏来代替这些繁琐的步骤。
宏的使用
下面用刚刚录制的宏来生成工资条,操作步骤如下:
(1)如果我们没有选中A3单元格,则应该首先选中A3单元格,如下:

(2)点击”开发工具“下的”宏“按钮,如下:

选中”生成工资条“,然后点击执行即可。如下:

我们发现又新插入了一个蓝色背景行。是我们所要的方式。
(3)下面就是不断重复(2)的步骤即可。即可很快的制作成工资条了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
宏的快捷使用
什么?你觉得像上面使用宏还是太麻烦,这样效率还是不高!没关系,宏有三种快捷使用方法,任你
随心所欲的选择。
=================================
(1)使用快捷键
还记得我们在录制宏的时候设置的快捷键吗?就是Ctrl+q。你只要选中A3单元格,然后不停的按下Ctrl+q的快捷键
即可。然后就很快生成了如你所要的工资条了。
=================================
(2)使用按钮窗体
如果你觉得快捷键还是不够人性化,比如你的表格拿给别人用,结果别人却忘记了快捷键,怎么办?没关系,
你可以直接把录制好的宏做成一个按钮,让它直接点击这个按钮即可。操作如下:
首先选中”开发工具“下的”插入“,选中表单控件下的第一个”按钮“。如下:

然后在合适的位置绘制该按钮,这时候会让你选择指定宏,你选中我们刚刚录制的”生成工资条“即可,
如下:

点击确定即可,如下:

再然后我们把按钮名字更改一下,如下:

接下来就不断的重复点击该按钮即可,就能生成你所要的工资条样式了。
应当注意的是,此时应该选中最后一个跟A3单元格一样位置的单元格,然后就可以不断的点击该按钮进行生成了。
=================================
(3)将宏放在功能区
什么?还不够方便和人性化!!比如你一直点击按钮,结果表格行太多,到最后非得往上拉一下
才能看到按钮,然后才能点击。所以不如索性把宏放在自定义功能区得了。制作步骤如下:
首先在功能区上右键,选中”自定义功能区“,如下:

然后我们选择”新建选项卡“,如下:

然后右键给这个选项卡重新命名,并且也给这个新建组重新命名,如下:

然后我们左侧选择”宏“,并选中”生成工资条“我们刚录制的宏,然后点击”添加“,将其添加到右侧”生成工资条“这个组里面。
如下:

点击添加后如下:

然后点击确定。如下:

我们发现功能区多了一个选项卡叫”我录制的宏“,该选项卡下面就有一个组叫做“生成工资条”,这个组里
面有个按钮,也叫'生成工资条”。
然后我们就可以不断点击这个按钮,来生成你想要的工资条表格了。应当注意的是,此时应该选中最后一个
跟A3单元格一样位置的单元格,然后就可以不断的点击该按钮进行生成了。

绝对让你恍然大明白的Excel VBA之宏的介绍

4. VBA宏的问题

你没有贴出你的代码,猜测你慢是因为两个原因:一是没有使用数组,大量的Range或者Cells存取单元格,二是没有使用字典,使用双重循环来检查是否重复。改变就针对这两点进行,如果你已经采取了这两条,那就要看看你代码其它地方是否有不合理的。
只有你贴出代码才可能进一步优化,直接给的代码可能和你的差不多,不一定能解决关键的地方。
按照你的例子,我给出下面的代码,你可以试试看,几十万数据应该一分钟能完成,当然这一分钟不要乱点鼠标,否则位“未响应的”
处理前:


处理后:

代码:
Option ExplicitSub 宏1()    Dim arr, num, n, i, db    Set db = CreateObject("Scripting.Dictionary")    arr = ActiveSheet.UsedRange '工作表数据存入数组    For i = 1 To UBound(arr)        num = Trim(arr(i, 1))        n = db(num) + 1        db(num) = n        If n > 1 Then arr(i, 1) = Chr(63 + n) & num    Next i    ActiveSheet.UsedRange = arr '数组写入工作表End Sub

5. 如何用VBA设置代码运行宏

  宏的通俗定义:宏是被某些软件所能识别、理解并执行的特定代码/脚本。
  宏的作用:因为宏能被软件执行、不需要人工来操作了,从而能实现“自动、批量”的业务处理,极大提高工作效率。
  运行方法如下:
  1.将光标置于Sub/End sub之间,按菜单上的绿三角按钮,或F5键。

如何用VBA设置代码运行宏

6. excel中vba问题

楼上正解。
VBA说到底是VB的一个子集,是一种编程语言。编程语言为了方便程序员开发多多少少都有个函数库,对于那些很常用的功能就不需要程序员再去自己编写函数了。
Excel说到底虽说是个软件,可是软件也是函数库实用化后的一种表现。底层还是对编程语言的封装扩展。简而言之就是说Excel的函数库扩充了VBA的函数库。
VBA中有Math函数库,提供了如Sin,Cos等基本的三角函数。还有Sqr(求根),Rnd(随机数发生器),这些都是最基本的函数。正因为基本到哪儿都会用到,所以它们才会被收集到了编程语言的函数库中。
Excel就不同了,它是专门用于计算的。VBA中自带的函数库显然不能满足要求,所以它还有很多其它的数学类函数。很多函数我们在单元格中就能直接使用,但是有时我们需要在VBA代码中使用,这是就需要用到application.worksheetfunction了。当然不是所有在工作表单元格中可以使用的函数都可以在application.worksheetfunction中找得到。最简单地说ABS就没有,因为它在VBA的函数库中已经带了。
不光可以用application.worksheetfunction使用工作表函数,我们还可以在工作表中使用在VBA中定义的用户自定义函数。前提是该函数必须写在标准模块中。而且用Public限定。用Private限定的自定义函数在工作表中也可以正常工作,只是在输入过程中没有智能提示!

7. 请求大神帮忙写个excel VBA代码,谢谢!

法如下:
一、开发工具

二、双击sheet


三、建立事件
选择Change事件

四、编写代码
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FRG As Range
If Target.Column = 2 Then
Set FRG = Sheet2.Range("B:B").Find(Target)
    If Not FRG Is Nothing Then
        Sheet1.Range("B" & Target.Row) = Sheet2.Range("B" & FRG.Row)
        Sheet1.Range("C" & Target.Row) = Sheet2.Range("C" & FRG.Row)
        Sheet1.Range("D" & Target.Row) = Sheet2.Range("D" & FRG.Row)
        Sheet1.Range("E" & Target.Row) = Sheet2.Range("E" & FRG.Row)
        Sheet1.Range("F" & Target.Row) = Sheet2.Range("F" & FRG.Row)
        Sheet1.Range("G" & Target.Row) = Sheet2.Range("G" & FRG.Row)
        Sheet1.Range("H" & Target.Row) = Sheet2.Range("H" & FRG.Row)
    End If
End If
End Sub
五、在分类1中输入金,后面数据自动出来

请求大神帮忙写个excel VBA代码,谢谢!

8. EXCEL VBA 代码的问题?

程序代码:

程序运行结果:

代码文本:
Option Explicit

Sub 宏1()
    Dim arrC, arrAQ, i&, j&, k&, n&
    n = Cells(Rows.Count, "AQ").End(xlUp).Row - 8 'AQ列从9行开始的数据行数
    arrAQ = Range("AQ9").Resize(n, 4)
    ReDim arrC(1 To n, 1 To 3)
    For i = 1 To n
        For j = 1 To 4
            k = arrAQ(i, j) Mod 3 + 1 '余数+1
            arrC(i, k) = arrC(i, k) + 1 '数组C对应列+1
        Next j
    Next i
    Range("C9").Resize(n, 4) = arrC
End Sub