请人解释下excel中vba的代码段含义~~~~谢谢了哈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请人解释下excel中vba的代码段含义~~~~谢谢了哈相关的知识,希望对你有一定的参考价值。

月销量结算
Range("D:D,E:E").Select
Range("E1").Activate
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("1Y").Range("D:D,E:E")
ActiveChart.Location Where:=xlLocationAsObject, Name:="1Y"
--------------------------还有这个-------------------------------------------------------------
结算
Sheets("CX").Activate:
Sheets("CX").Range("A1:G100").ClearContents
Dim I As Integer
I = 0
Do
I = I + 1
Sheets("CX").Cells(I, 1).Value = Sheets("ZL").Cells(I, 1).Value:
Sheets("CX").Cells(I, 2).Value = Sheets("ZL").Cells(I, 4).Value:
Sheets("CX").Cells(I, 3).Value = Sheets("ZL").Cells(I, 6).Value
Loop Until (Sheets("ZL").Cells(I, 1).Value = "")

Range("D:D,E:E").Select 选择第D E 列
Range("E1").Activate
Charts.Add 添加图表
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("1Y").Range("D:D,E:E")
ActiveChart.Location Where:=xlLocationAsObject, Name:="1Y"
--------------------------还有这个-------------------------------------------------------------
结算
Sheets("CX").Activate:
Sheets("CX").Range("A1:G100").ClearContents
Dim I As Integer
I = 0
Do 这是一个循环的开始
I = I + 1
Sheets("CX").Cells(I, 1).Value = Sheets("ZL").Cells(I, 1).Value: l在不停的变化由1到单位格的值是空的情况停
Sheets("CX").Cells(I, 2).Value = Sheets("ZL").Cells(I, 4).Value:
Sheets("CX").Cells(I, 3).Value = Sheets("ZL").Cells(I, 6).Value
Loop Until (Sheets("ZL").Cells(I, 1).Value = "") 这是循环的结束的条件
参考技术A
一个有四个参数的自定义函数 函数名就是smoothness, 因为这些代码都是根据实际情况写成的,非当事人没兴趣给你解释!

Excel VBA粘贴链接循环

【中文标题】Excel VBA粘贴链接循环【英文标题】:Excel VBA Paste Link Loop 【发布时间】:2019-01-12 11:14:01 【问题描述】:

我想将数据从多个工作表移动到一个摘要工作表中。并希望将其从活动工作表(我用鼠标光标手动选择)和倒数第二个连续工作表之间移动。 下面的代码效果很好,但是当代码到达粘贴链接行时我有两个问题:

    仅当我实际单击“1819 年摘要论文”表时,才会粘贴链接。这是一个问题,因为汇总表中填充了我要排除的表中的数据。

    我在工作中使用 excel 2010 将这段代码放在一起,它没有给我带来任何问题(除了上面的问题)。但是,当我使用 excel 2016 将文件发送回家时,我在随机点出现运行时错误,因为代码尝试遍历粘贴链接行。有时错误显示为“没有粘贴链接”(即使有),只需单击调试然后继续即可解决此问题,这样代码就可以正常工作。但在其他时候,它会显示“工作表类的粘贴方法失败”,我无法对此进行调试,代码也不会继续执行。

子工作循环()

Dim i As Long
Dim DestRow As Long

For i = ActiveSheet.Index To Sheets.Count - 1

    DestRow = Sheets("Summary 1819 paper").Range("B" & Rows.Count).End(xlUp).Row + 1

    Sheets("Summary 1819 paper").Range("B" & DestRow).Value = Sheets(i).Range("C1")
    Sheets("Summary 1819 paper").Range("C" & DestRow).Value = Sheets(i).Range("E1")
    Sheets("Summary 1819 paper").Range("D" & DestRow).Value = Sheets(i).Range("A16")


    Sheets(i).Range("F128").Copy
    Sheets("Summary 1819 paper").Range("E" & DestRow).Select
    Sheets("Summary 1819 paper").Paste Link:=True

    Sheets(i).Range("L7").Copy
    Sheets("Summary 1819 paper").Range("F" & DestRow).Select
    Sheets("Summary 1819 paper").Paste Link:=True

    Sheets(i).Range("M7").Copy
    Sheets("Summary 1819 paper").Range("G" & DestRow).Select
    Sheets("Summary 1819 paper").Paste Link:=True

    Sheets(i).Range("F24").Copy
    Sheets("Summary 1819 paper").Range("L" & DestRow).Select
    Sheets("Summary 1819 paper").Paste Link:=True

    Next i

End Sub

如果您能帮助我解决这两个问题并了解我做错了什么,我将不胜感激。

【问题讨论】:

【参考方案1】:

问题是ActiveSheet.index按照它所说的去做:它看向活动表的索引。您的代码有效,即:运行所有工作表,可能是因为您的工作表“摘要 1819 论文”是您工作簿的第一个工作表。 您想浏览除工作簿的第一个(您的摘要表)之外的所有工作表吗?然后应用for i = 2 to sheets.Count 而不是你当前的For i = ActiveSheet.Index To Sheets.Count - 1

关于您的第二期。使用 F8 逐步运行您的代码。看看它到底在哪里出错并尝试像那样解决它。想不通?添加“debug.print i”以在直接窗口中查看错误发生在哪张纸上。您也可以尝试修改您的

Sheets(i).Range("F24").Copy
Sheets("Summary 1819 paper").Range("L" & DestRow).Select
Sheets("Summary 1819 paper").Paste Link:=True

Sheets("Summary 1819 paper").Range("L' & DestRow).Formula = "Sheet"&i&"!F24"

强制性未经测试。 问候,

【讨论】:

您好,感谢您的回复。如果我排除所有处理复制/粘贴链接的行,则代码在任何活动表中都可以正常工作(这是我需要的)。我每周都会向此工作簿添加新工作表,当我这样做时,我会再次执行代码以用新数据填充摘要工作表。除非我从活动工作表(我插入的第一个新工作表)开始,否则摘要工作表也总是会填充旧工作表中的数据。 关于错误的第二个问题现已解决。在代码运行时,如果我避免单击代码顺利完成的任何内容。我继续阅读此处以避免在可能的情况下使用“选择”,因为如果在代码运行时单击某些内容,这可能会导致错误。也许这就是随机行发生错误的原因,尽管在我点击和发生运行时错误之间似乎没有模式

以上是关于请人解释下excel中vba的代码段含义~~~~谢谢了哈的主要内容,如果未能解决你的问题,请参考以下文章

excel vba sql 占用内存,因为如下查询的sql语句较多,每次运行完都要耗用很多内存,求高手指点。谢

excel中vba中Selection.Replace的用法,及参数的含义

VBA Excel to Word - 对于下一个循环随机跳过数据

EXCEL VBA 事件的问题。

EXCEL用VBA提取字符串

在Excel中如何用vba实现:每隔一段时间自动将工作簿保存到以当时时间为文件名的文件中