【问题标题】:Excel - copying specific non-blank cells from one sheet to anotherExcel - 将特定的非空白单元格从一张纸复制到另一张纸
【发布时间】:2020-12-24 14:28:43
【问题描述】:

我有一个关于将特定非空白单元格从一个 Excel 工作表复制到另一个工作表的问题。我通常会使用 INDEX/ROW 但在这种情况下,我需要从 3 个单元格中选择 1 个,具体取决于一个人是在正常工作时间、加班还是换班,并将这些时间以特定格式复制到另一张纸上。我认为使用 VBA 可能会更容易。

下面是一个具体的例子:

表 1 在 2020 年 12 月 27 日星期日,员工 1 将工作 12.00 小时 FLAT (BH14),我需要将此信息复制到 Sheet2 (I17)。

第二天 2020 年 12 月 28 日星期一,员工 1 将工作 12.00 小时 SWAP 班次(这次不同的列 - BJ74),我需要将其输入 Sheet2 (J17)。

在 2020 年 12 月 29 日星期二,员工 1 将加班 10 小时(BI134 列),我需要将其输入 Sheet2 (K17)。

重要的是,要复制到 Sheet2 中的小时数保持相同的格式 - 正常(对于 FLAT)、紫色(对于 SWAP)或蓝色(对于 OVERTIME)。

【问题讨论】:

  • 使用 if 语句检查 Flat 是否为空,然后检查 Swap,然后检查 Overtime。抓取具有值的值并粘贴格式。
  • 您好,谢谢您的回答。在“Sheet2”中,我需要为每个单元格、每个员工、全年执行此操作。它不会超级减慢整个电子表格的速度吗?
  • If 语句将非常快,就像在数十万行中增加几毫秒一样。如果您看到明显的减速,那么其他事情正在阻碍您。

标签: excel vba copy


【解决方案1】:

我不确定这里有什么问题。是关于做出什么样的转变的决定吗?如何决定什么副本到哪里?

关于复制具体格式可以试试

1:

Sheet1.Range(BH14).Copy
Sheet2.Range(I17).Select
ActiveSheet.Paste

2:

Sheet2.Range(I17).Value = Sheet1.Range(BH14).Value 'You will copy value this way    Sheet1.Range(BH14).Copy 'copy the formatting (like colors)
Sheet2.Range(I17).PasteSpecial Paste:=xlPasteFormats 'paste the formatting <br>
Application.CutCopyMode = False   'clear memory

【讨论】:

  • 您好,感谢您的回答。无论如何,该值都应复制到“Sheet2”,如果该人当天在“Sheet1”中没有任何值,则保持空白。最重要的部分是,在“Sheet2”中,我仍然需要能够区分正常班次、加班和交换班次。我根据条件格式和小时数将其输入到我的每日总数中-因此,如果第 1 个人加班 12 小时,第 2 个人也加班,那一天我将加班 24 小时-这就是格式如此的原因很重要。
  • “Sheet1”就像一个每日“任务”计划器,基于此,我在概览部分(年度劳动计划器)中获得总小时数,即“Sheet2”。不确定这是否有意义?
  • 嘿,解决方案 2 也应该复制条件格式。你能把这个excel放在一些谷歌驱动器上吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多