Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从同一模板为不同的输入/场景生成多个图表

如何从同一模板为不同的输入/场景生成多个图表
EN

Stack Overflow用户
提问于 2019-01-14 23:40:13
回答 2查看 79关注 0票数 0

我正在使用Excel,并且有一些基本的VBA /宏知识。我有一个相当大的数据集,每周都会更新。在此基础上,我使用一系列Index/match为特定产品生成一个40列(日期)乘4行(时间序列数据)的表。我有15-20种不同的产品,它们经常变化。然后使用这个4x40表格来生成图表。使用这种方法,我可以用下拉框选择产品(数据验证),我的索引/匹配将正确的数据拉到4x40表中,然后显示该产品的图表。但我希望有一个宏,它可以为产品1生成图表,将其作为图像复制并粘贴到word文档中,然后对产品2和3执行相同的操作,依此类推,然后将单词文档保存为pdf以供分发。

一种选择是创建15-20个4x40表和15-20个图表,然后复制/粘贴所有这些表,但随着产品的更改,如果需要更改格式,这将成为一场噩梦。

EN

回答 2

Stack Overflow用户

发布于 2019-01-15 00:51:52

如果没有看到你确切的工作表,很难给出一段确切的代码。然而,我最近做了一个与此类似的要求的工作簿。

作为答案的大纲,您可以考虑使用循环遍历您的15 - 20个产品列表,将每个产品放入您当前进行数据验证的单元格中(确保您首先删除了任何验证),这将更新索引匹配以及您的图表。在该循环中,您可以包含一些代码,以便在转到下一个产品之前将工作表保存为pdf (或者将图表放在单独的工作表中并显式引用它)。

例如,如果你的验证是在单元格A1工作表“表”中,而你的产品列表是A2:A20工作表" products“,这样的东西会让你得到一些好处;

代码语言:javascript
运行
AI代码解释
复制
Sub save_charts()

Dim i As Long
Dim path As String
Dim product_name As String
Dim ws_name As String
Dim file_name As String

i = 2
path = Application.DefaultFilePath

Do Until Worksheets("Products").Cells(i, 1).Value = ""

If Worksheets("Products").Cells(i, 1).Value <> "" Then
product_name = Worksheets("Table").Cells(1, 1).Value
ws_name = product_name & " Chart"
file_name = path & "\" & ws_name
Worksheets("Table").Cells(1, 1).Value = Worksheets("Products").Cells(i, 1).Value
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        file_name, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

End If

i = i + 1

Loop

End Sub

我知道你提到在导出为pdf之前将其复制到word中?这是一项要求吗?因为此代码仅使用Excel的本机导出到pdf功能。

我希望这能帮到你。

干杯。

票数 0
EN

Stack Overflow用户

发布于 2019-01-15 19:52:03

一种替代方案,将自动生成所有20个图表与每次刷新0 vba将是做以下步骤1次: 1.创建一个透视表和透视表图表,你需要为给定的产品,例如过滤它在一个单一的产品代码,创建基本图表,现在推迟格式化。此数据透视表的源数据需要包括所有20个产品的数据

  1. 在步骤1的源数据中,添加另一个名为FilterID的列,并按公式设置此列,以便1=第一个产品的数据;2,第二个;3,依此类推。
  2. 返回步骤1透视表并添加FilterID作为透视筛选器,将其设置为1,以便只有第一个产品出现在图表上
  3. 设置图表的格式现在复制包含数据透视表和数据透视表的工作表
  4. FilterID on each

<

  1. >G211>

此时,您唯一需要的vba是循环浏览每个包含有效图表的工作表,并保存为pdf

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54190797

复制
相关文章
Geoserver扩展以支持Erdas Image数据的服务发布
Geoserver默认支持的栅格数据源比较少,包括ArcGrid,GeoTiff,WorldImage,ImageMosaic等,是不支持Erdas Img格式的栅格数据源的,因此,为了能够让Geoserver支持发布Erdas Img格式的数据源,需要用GDAL的插件对Geoserver进行扩展,本文讲述如何在Geoserver中配置并支持Erdas Img格式的数据源。
牛老师讲GIS
2018/10/23
2.6K0
Geoserver扩展以支持Erdas Image数据的服务发布
【Kotlin】扩展属性 ( 扩展变量属性 | 扩展常量属性 | 注意事项 | 本质分析 )
① 修饰 : 变量扩展属性使用 var 修饰 , 常量扩展属性使用 val 修饰 ;
韩曙亮
2023/03/27
9750
【Kotlin】扩展属性 ( 扩展变量属性 | 扩展常量属性 | 注意事项 | 本质分析 )
【Android Gradle 插件】Gradle 扩展属性 ③ ( 为任意对象设置扩展属性 | 扩展属性定义方式 )
中 , 直接在 build.gradle 构建脚本 中定义的 扩展属性 , 是为 org.gradle.api.Project 对象定义的扩展属性 ;
韩曙亮
2023/03/30
8580
【Android Gradle 插件】Gradle 扩展属性 ③ ( 为任意对象设置扩展属性 | 扩展属性定义方式 )
【Android Gradle 插件】Gradle 扩展属性 ④ ( 扩展属性访问方式 | 直接访问扩展属性 | 通过 ext 对象访问 | 在 gradle.properties 中定义扩展属性 )
也可以 通过 project.ext.hello 访问该扩展属性 , 代码如下 :
韩曙亮
2023/03/30
2.7K0
【Android Gradle 插件】Gradle 扩展属性 ④ ( 扩展属性访问方式 | 直接访问扩展属性 | 通过 ext 对象访问 | 在 gradle.properties 中定义扩展属性 )
【Android Gradle 插件】Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )
org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html
韩曙亮
2023/03/30
3.1K0
【Android Gradle 插件】Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )
扩展htmlhelper.DropDownListFor 支持list数据源和option增加属性
mvc自带的DropDownListFor数据源必须是IEnumerable<SelectListItem>。并且option不支持增加自定义属性。在使用bootstrap-select组件的时候,发现不是很好用。所以扩展了一下。
旺财的城堡
2018/11/20
8220
Spring使用p名称空间配置属性
Spring的p标签是基于XML Schema的配置方式,目的是为了简化配置方式。
大黄大黄大黄
2018/09/14
9660
Spring使用p名称空间配置属性
Power BI 支持的颜色名称列表
在Power BI可用直接使用英文颜色名称自定义颜色,比如字体颜色、背景色、填充色等,通常使用条件判断进行颜色变化。
wujunmin
2022/12/13
1.3K0
Power BI 支持的颜色名称列表
获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎
先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配。在实际的业务中,可能会动态根据属性去获取值。 工具类如下: package com.yaoguang.common.utils.field; import java.beans.Bean
猿人谷
2018/01/17
6.8K0
spring开发_使用p名称空间配置属性
http://www.cnblogs.com/hongten/gallery/image/112563.html
Hongten
2018/09/13
4940
第6章 扩展函数与属性第6章 扩展函数与属性
在使用Java的时候,我们经常使用诸如StringUtil, DateUtil等等一堆工具类,代码写起来也比较冗长。举个例子,获取一个字符串的第一个字符值、最后一个字符值。如果我们用Java代码来写,通常是要先声明一个StringUtil类,然后在里面写相应的工具方法,代码可以是下面的这个样子
一个会写诗的程序员
2018/08/17
4830
第6章 扩展函数与属性第6章 扩展函数与属性
53. Vue名称案例-使用computed计算属性
前面在写名称拼接案例的时候使用了keyup监听文本框,还使用了watch来监听数据变化,那么本篇章来使用computed计算属性来监听实现。
Devops海洋的渔夫
2022/01/17
5970
53. Vue名称案例-使用computed计算属性
属性元素,标记扩展和注释
一般的,我们想要对一个标签的属性赋值,可以直接在标签内部键入属性名给其赋值,如我们给button的Content属性赋值:
宿春磊Charles
2021/11/05
6870
Enum扩展特性,代替中文属性
把原文中的out参数替换成返回元组,由于项目是vs2015开发,不能用c#7.0特性,否则用7.0中的值元组应该更好一点。性能和显示友好性都会有改进。
用户6362579
2019/09/29
4270
Kotlin入门(33)运用扩展属性
进行App开发的时候,使用震动器要在AndroidManifest.xml中加上如下权限:
aqi00
2019/01/18
9350
Linq Like的操作
Like的操作,有点像in,但是,方向变了。什么意思呢。就是你给定一个字符串,去寻找数据中某个字段包含这个字符串。就是给定的字符串是某字段的子集。Sql Script是这么写的。 Selec * from table where id like '%AD%'Selec * from table where id like '%AD'Selec * from table where id like 'AD%'上面的%是通配符,表示,该字段含有某个值,不知道的位置使用%代替。第一个是表示中间一段是AD,两头
逸鹏
2018/04/10
8530
【Android Gradle 插件】Gradle 扩展属性 ① ( Gradle 扩展属性简介 | Gradle 自定义 task 任务示例 )
org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html
韩曙亮
2023/03/30
7760
【Android Gradle 插件】Gradle 扩展属性 ① ( Gradle 扩展属性简介 | Gradle 自定义 task 任务示例 )
Chrome迅雷下载支持扩展1.1
喜欢chrome浏览器又经常使用迅雷下载东西的朋友注意了,chrome迅雷下载扩展已经发布了。再也不用复制到IE打开或者使用IE tab了。
reizhi
2022/09/26
9770
Chrome迅雷下载支持扩展1.1
点击加载更多

相似问题

如何扩展json模式元模式以支持新属性?

120

如何扩展React类型以支持html属性作为道具?

21

扩展设计以支持JSON

21

扩展ArrayList以支持事件

22

扩展Libeasy以支持chromecast

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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