Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >excel vba -错误1004

excel vba -错误1004
EN

Stack Overflow用户
提问于 2017-09-21 23:08:26
回答 2查看 352关注 0票数 3

你能帮我解决vba代码中的这个问题吗?(我在论坛上尝试过很多关于1004错误的话题,但我是一个vba新手,无法处理它。)

  • RaWData工作表中有带有头的表--我需要清理数据部分,然后在下一节中,我将从其他工作表中复制一些数据,其中有数据透视表。

线上的错误(部分的工作表RawData清洗):

代码语言:javascript
运行
AI代码解释
复制
RawData.Range(Cells(2, 1), Cells(LastRow, LastCol)).Delete

不是完整的代码,但这里有一点:

代码语言:javascript
运行
AI代码解释
复制
'Exporting
Dim FZ As Workbook
Dim Cesta As Variant
Dim i As Long
Dim SubRegion As String
Dim rTable As Range
Dim CurrDate As String
Dim RawData As Worksheet
Dim SFDCReport As Worksheet
Dim MS As Worksheet
Dim DS As Worksheet
Dim DealOffice As Worksheet

Set DS = ThisWorkbook.Sheets("Data")
Set MS = ThisWorkbook.Sheets("Macro")
Cesta = Application.GetOpenFilename
Set FZ = Workbooks.Open(Filename:=Cesta, Local:=True)
Set RawData = FZ.Sheets("RawData")
Set SFDCReport = FZ.Sheets("SFDC Report")
Set DealOffice = FZ.Sheets("Coverage DealOffice")
CurrDate = MS.Range("E1").Value

For i = 1 To PRFilter
    'Check if Export column is not empty for each SubRegion, if yes, skip to next Subregion(Iteration)
    If IsEmpty(MS.Cells(i + 1, 2).Value) Then
    GoTo NextIteration
        Else 'Things to do if "Not Empty"
        'SubRegion value paste into C10 so Highlights section is updated
        SubRegion = MS.Cells(i + 1, 1).Value
        SFDCReport.Cells(10, 3).Value = SubRegion

    'Sheet SFDC Report Cleaning
    With SFDCReport
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    LastCol = .Cells(12, .Columns.Count).End(xlToLeft).Column
    .Range(Cells(14, 1), Cells(LastRow, LastCol)).Delete
    End With

    'Filter, Select & Copy filtered data to SFDCReport table
    DS.Range("A1").CurrentRegion.AutoFilter Field:=84, Criteria1:=SubRegion
    Set rTable = DS.AutoFilter.Range
    Set rTable = rTable.Resize(rTable.Rows.Count - 1)
    Set rTable = rTable.Offset(1) 'Move new range down to start at the first data row
    rTable.Copy
    SFDCReport.Cells(13, 1).PasteSpecial xlPasteValues
    DealOffice.PivotTables("PivotTable1").RefreshTable 'Refresh PivotTable on DealOffice Sheet

    'Sheet RawData Cleaning
    LastCol = RawData.UsedRange.Columns.Count
    LastRow = RawData.UsedRange.Rows.Count
    RawData.Range(Cells(2, 1), Cells(LastRow, LastCol)).Delete

    'Sheet CoverageDealOffice Pivot data copying to RawData
    With DealOffice
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    LastCol = .Cells(17, .Columns.Count).End(xlToLeft).Column
    .Range(Cells(17, 1), Cells(LastRow - 1, LastCol)).Copy
    End With
    RawData.Cells(2, 1).PasteSpecial xlPasteValues

    'Formatting/other changes & Saving
    SFDCReport.Activate
    ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
    ActiveWindow.ScrollColumn = 68
    DealOffice.Select
    FZ.SaveAs Filename:=DirExport & "\" & CurrDate & "_NCE Deal Office Report_" & SubRegion & ".xlsb", FileFormat:=50

NextIteration:
    End If
Next

谢谢各位,甘卡

EN

回答 2

Stack Overflow用户

发布于 2017-09-21 23:49:09

不确定为什么这会不断地将整个数据集从原始复制到目标。我只需要将过滤过的数据复制到目标中,从目标表SFDCReport中的SFDCReport开始。

代码语言:javascript
运行
AI代码解释
复制
   'Filter, Select & Copy filtered data to SFDCReport table
    DS.Range("A1").CurrentRegion.AutoFilter Field:=84, Criteria1:=SubRegion
    LastRow = DS.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1
    LastCol = DS.AutoFilter.Range.Columns.Count
    Set rTable = DS.AutoFilter.Range
    Set rTable = rTable.Resize(rTable.Rows.Count - 1)
    Set rTable = rTable.Offset(1) 'Move new range down to start at the first data row
    Set rTable2 = SFDCReport.Range(SFDCReport.Cells(13, 1), SFDCReport.Cells(LastRow, LastCol))
    rTable2.Value = rTable.Value
票数 0
EN

Stack Overflow用户

发布于 2017-09-24 23:19:37

更正/解决-由于一些建议,我已经更改了“语法”编码,使之与+一起使用/结束,以便将"address“包含到所有范围对象中。

更改代码的一部分:

代码语言:javascript
运行
AI代码解释
复制
'Filter, Select & Copy filtered data to SFDCReport table
        With DS.Range("A1").CurrentRegion
        .AutoFilter Field:=84, Criteria1:=SubRegion
        .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy SFDCReport.Cells(13, 1)
        End With
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46358807

复制
相关文章
访问列表中的值
#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7 ] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]
用户8442333
2021/05/27
5.9K0
Angular2 路由传值
在接收值得组件里面导入ActivatedRoute 路由设置页面传参 { path: 'view/:mid' , component: ViewComponent}, 父级页面路由跳转的实现 <div [routerLink]="['/email/view',mail.id]">页面跳转传值</div> 子页面的Component通过下面的方法可以获取到父页面路由传过来的参数<b>mail.id</b> // import { Component, OnInit } from '@ang
用户1437675
2018/08/20
8060
Angular2 中的指令
组件:一种带有模板的指令;使用component来装饰组件类 属性指令:改变元素的外观或行为,如NgClass,NgStyle;使用Directive来装饰指令类 结构指令:向DOM中添加或删除元素,如NgIf,NgFor;使用Directive来装饰指令类
用户1437675
2018/08/20
1.8K0
Angular2 组件(页面)之间如何传值
在Angular 2中,数据和事件变化检测从上到下发生从<b>父级到子级。</b>
用户1437675
2018/08/20
4K0
Angular2 组件(页面)之间如何传值
SpringBoot中自定义注解实现控制器访问次数限制
今天给大家介绍一下SpringBoot中如何自定义注解实现控制器访问次数限制。 在Web中最经常发生的就是利用恶性URL访问刷爆服务器之类的攻击,今天我就给大家介绍一下如何利用自定义注解实现这类攻击的
林老师带你学编程
2018/01/04
2.7K0
迭代器模式(控制访问集合中的元素)
现在我们需要思索,JDK是怎么做到这一切的?现在让我们先利用迭代器实现一个数组类型Array,这个类型需要支持添加、移除、遍历操作。
幺鹿
2018/08/21
1.4K0
迭代器模式(控制访问集合中的元素)
Android 中的属性动画 --- 2(插值器)
在上一篇文章中,我们使用 ValueAnimator 这个类来实现了操作 View 对象的 height 属性从而实现了动画形式的显示和隐藏 View 控件。我们知道 ValueAnimator 这个类只用于根据当前动画的完成度和按照一定的“规律”产生一系列有规律的数字,事实上,属性动画的核心部分也就是这个,我们可以不断获取 ValueAnimator 产生的数字用于操作 View 的属性从而完成动画。那么 ValueAnimator 按照什么“规律”来产生一系列的数字呢?其实这个规律就是插值器。我们在定义属性动画的时候,需要通过setDuring 方法来为属性动画指定完成这个动画的时间,那么插值器就是用不同的时间因子产生不同的值,说白了插值器就像是一个公式,根据输入来转换成对应的输出。不同的插值器下,每个单位时间所达到的变化值也是不一样的,如果说使用线性插值器,那么每个单位时间内变化的值都一样。这就好比在规定的时间内跑步一样,有些人一开始跑的快,后面跑的慢,有些人一开始跑得慢,后面跑得快,但是大家都能在规定的时间里面到达终点。插值器就相当于描述跑步速度的对象。 Android 属性动画框架给我们提供了一些插值器和其对应的变化曲线:
指点
2019/01/18
1.7K0
Android 中的属性动画 --- 2(插值器)
SpringBoot之读取配置文件中自定义的值
一般来说,我们会在配置文件中自定义一些自己需要的值,比如jwt的密匙,或者一些FTP配置等信息
彼岸舞
2021/01/21
2.4K0
Angular2 拦截器(页面请求修改Url+headers传值+获取服务器返回的错误信息)
1.我们首先定义一个服务 <b>HttpInterceptorService</b>
用户1437675
2018/08/20
3K0
Carson带你学Android:自定义动画神器-插值器与估值器(含实例教学)
设置方法1:在 动画效果的XML代码中设置插值器属性android:interpolator
Carson.Ho
2022/03/24
1.1K0
Carson带你学Android:自定义动画神器-插值器与估值器(含实例教学)
idea中Debug时计算自定义表达式的值
没有返回结果,使用ctrl+alt+v抽取变量,可以自动生成返回,记得补充末尾的分号.
玖柒的小窝
2021/09/14
6950
idea中Debug时计算自定义表达式的值
shell脚本 从自定义的值中随机抽取+不重复
日期:2018/6/12 介绍:从数组里随机抽一个,但不会重复,相比之下python比较好做出效果
陈不成i
2021/06/24
3.3K0
Angular2入门体验
好的工具往往使得开发应用更快更简单,而不是任何模块都手动开发。angualr cli就是一个支持 创建工程,添加文件,对各种任务如测试、打包、部署等迭代。 本文的目的就是基于TypeScript开发构建一个angualr应用,使用angualr cli可以选择工程的风格。 在本章的 末尾,你可以理解CLI的开发以及开发完整应用的样例。 也可以通过这个链接直接下载源码。 第一步,配置环境变量 在开始开发前,需要安装nodejs。 点击这个网址,Nodejs安装文件下载 在命令行中,执行: sudo npm i
用户1154259
2018/04/17
1.7K0
angular2 路由问题
Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'main' 这个问题的处理很简单,是路由的路径写错了, import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import {loginComponent} from './login/login.component'; impor
杭州前端工程师
2018/06/15
1.2K0
Angular2 之 Animations
Angular2的动画系统赋予了制作各种动画效果的能力,致力于构建出与原生CSS动画性能相同的动画。 Angular2的动画主要是和@Component结合在了一起。 animations元数据属性在定义@Component装饰。就像template元数据属性!这样就可以让动画逻辑与其应用代码紧紧集成在一起,这让动画可以更容易的出发与控制。 使用要点 Angular2的动画是使用<u>模型驱动</u>的方式在两个状态之间进行转换,是由状态和状态之间的转场效果所定义的。 动画被定义在@Compone
贺贺V5
2018/08/21
1.9K0
Angular2 之 Animations
D11-Android自定义控件之动画篇3-插值器与估值器
零、前言 估值器和插值器丰富了动画更新时的效果 为方便本案例演示使用了我的LogicCanvas绘图库--github地址,当然你也可以自己绘制 估值器:TypeEvaluator :该以什么方
张风捷特烈
2018/09/29
7550
D11-Android自定义控件之动画篇3-插值器与估值器
抛弃dict[key]的方式访问Python字典的值
如果key不存在,dkey会抛出一个KeyError类型的异常,这将导致python程序崩溃,这是非常令人烦恼的事情。
AIFEx
2023/10/04
2840
抛弃dict[key]的方式访问Python字典的值
Oracle 触发器中修改字段值
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53909715
用户1148526
2019/05/25
1.8K0
再谈属性动画——介绍以及自定义Interpolator插值器
属性动画中有一个重要的概念就是插值器——Interpolator,根据流失的时间因子计算得到属性因子。Android中默认的插值器是AccelerateDecelerateInterpolator,内置了很多插值器,本文将以一个例子介绍各种插值器的效果,以及如何自定义Interpolator。 话不多说,先看demo,如下视频
用户1108631
2019/08/17
1.9K0
在使用angular2中使用nodejs创建服务器,并成功获取参数
老是遇到很多坑等着自己去填. 首先创建服务器: 1.最好使用express,这个库有更多的api,方法:npm install express --save; 2. npm install @types/express --save; 安装nodemon 可以让服务器自动重启, 方法:npm install nodemon; 在启动服务器的时候用:nodemon build/...js; 这样服务器就算启动完成了. /** * Created by Administrator on 2017/5/16.
杭州前端工程师
2018/06/15
4.4K0

相似问题

没有“”angular2的值访问器

27

Angular2中的错误-没有值访问器'‘

13

从Angular2中的自定义验证器访问服务

35

原始异常:没有'‘- angular2的值访问器

10

Angular2:没有嵌套表单的值访问器

215
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档