【问题标题】:How can I create a macro that find, select and cut columns, and paste them in another worksheet?如何创建一个宏来查找、选择和剪切列,然后将它们粘贴到另一个工作表中?
【发布时间】:2013-06-08 11:23:29
【问题描述】:

又是一天,又是一个问题。我认为让这个东西工作起来很容易,但我现在不知道如何走得更远。

问题:

在工作中,我们从客户那里获得了 Excel 表格。在此表中,他们将详细信息按列组织在每一列中,例如第一列包含客户编号,第二列包含名称,第三列包含地址等等。第一行包含列的描述,例如:“Customernumbers”、“Names”、“Addresses”等。

问题是,并非每个客户都以正确的顺序或相同的描述向我们发送此信息,例如有些人用 Customernumbers、numbers 或 studentnumber 来调用该列。此外,列的顺序并不总是相同。有时他们把地址放在第一列,有时他们把名字放在第一列。

我们必须以正确的顺序手动剪切和粘贴我们自己的 Excel 表中的每一列,以便我们的软件可以读取所有内容并将其放入数据库(不是 mysql,否则我已经为 mysql 制作了脚本) .

问题:

如何检测每一列中写入的内容并自动将该列剪切并粘贴到我们的 Excel 工作表的右列中。例如。检测到第三列是关于客户编号的,并将它们粘贴到我们工作表的客户编号列中。

想法:

1.) 我正在考虑用 php en mysql 做一个解决方案,是否将 excel 工作表以 xml 格式上传,以便 php 脚本可以运行并读取这个 xml 文件,以便最终可以将其存储在一个mysql数据库。之后,我们可以创建一个 xml 文件,将数据库中的信息写入一个 xml 文件,其中的列按正确的顺序排列。

2.) 经过长时间的思考和测试,我意识到这将花费很多时间,而且对于如此简单的事情来说太复杂了。相反,我尝试在 VBA 中制作一些东西。我找到了有用的脚本,并了解到 VBA 可以做我想做的事情。唯一的问题是,网络太大了,无法找到我真正想要的东西,我只知道 VBA 的基础知识,但是我想了解更多关于它的信息,这是我短时间内需要的东西。

【问题讨论】:

  • 太全球化了。解决您的特定问题,修改您的帖子,显示您的代码,然后我们将提供帮助
  • 我可以设想两种使用 VBA 的方法。要么创建一个宏来读取客户电子表格中的列,然后使用 if 语句来说明 if this 或 this 或 this,然后是“Customernumber”。另一种选择可能是让宏读取文件中的列并要求用户输入说,是的,该列是“名称”列。然后让宏将数据移动到适当的区域。
  • 一个完全不同的想法 - 创建一个您发送给客户的模板表(或网络表单或类似的东西)并让他们为您填写......最简单的解决方案是通常是为了标准化您收到的输入,而不是尝试弄清楚它们是如何组合在一起的...不是您要求的,但希望它能让您思考...
  • @Scheballs 你有这些想法之一的示例文件吗?或者你能指导我制作这样的脚本吗?
  • 如果您可以与我分享您正在使用的文件的样本,我可能会为您提供帮助。像这样的条件宏中的逻辑对于每种情况都非常具体。

标签: excel vba automation multiple-columns


【解决方案1】:

我同意约翰的观点,未来最好的解决方案是为客户提供标准模板。

但就您当前的问题而言,请尝试根据每列的内容对其进行分类。例如: - 名称以大写字母开头,并且往往有一到两个空格分隔名字、中间名和姓氏 - 地址往往以三四位数字开头,后跟一系列字母 - ID 往往只是数字字符

获取每个类别的这些特征,然后在每列中向下走几行,看看数据最适合这些类别中的哪一个。

这应该允许您识别每一列,并且从那里应该很容易选择列并将它们随机排列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    相关资源
    最近更新 更多