在具有特殊条件的同一工作簿中将单元格从一个工作表镜像到另一个

  1. 你想达到什么目的?
    我试图从一个表单镜像到另一个单元格的行的内容。 但是 ,这里的警告是:我被限制到MS Excel不访问 – 我可以使用模块,列B中的首字母缩写词将被用作条件来填充相应的工作表。 像: MS Access中的主键,最后实时填充表单; 没有什么应该运行。 电子表格附在这里 。

  2. 你试过什么了?
    一个。 那么,我试过了= Value(x)= Grand Budget!A(x)公式。 我在主表格中设置了相应的首字母缩写工作表,其中包括相应的首字母缩写,例如:表格“Grand Budget”中的所有NA首字母和数据在相应的行,即描述,供应商和金额将被反映在工作表“NA”
    它很好,直到第三个警告没有实现:它不能实时工作,因为我不能预测下一个初始值是什么,所以我不能用公式设置下一个单元格。
    湾 我也尝试通过列B中的首字母筛选“大预算”表格,select所需的行数据,命名它并将命名表导入相应的初始工作表。 来源 。

  3. 你有什么想法 – 在概念上?
    我在想,现在是模块的时候了,或者如果有人知道一个隐藏的Excel的公式,把它放在我身上。
    所有我有权利是一个if语句在c + +在我心中:if(current_cell == desired_initial){populate()};

我愿意帮助解释任何可能被错误转换的东西。

@peter更新进度,我需要协助填写相应的工作表。 谢谢!

Option Explicit ' Create a new sheet for new initials. Sub CreateNewSheet(Initials As String) 'Checks whether a sheet with the name "Initials" exists 'Creates a new sheet if it doesn't exist yet. If SheetExists("Initials") Then MsgBox "Yay! the sheet exists" Else MsgBox "Boo! the sheet doesn't exist; I shall create a new one!" 'Creates a new sheet if it doesn't exist yet. CreateSheet (Initials) End If End Sub Function SheetExists(Initials As String) On Error GoTo no: WorksheetName = Worksheets(Initials).Name SheetExists = True Exit Function no: SheetExists = False End Function Private Sub CreateSheet(Initials) Dim ws As Worksheet Set ws = ThisWorkbook.Sheets.Add(After:= _ ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) ws.Name = Initials End Sub Private Sub sbClearEntireSheetOnlyData() Sheets("Initials").Cells.ClearContents End Sub Private Sub MatchCase(Initials) Dim x As Integer Application.ScreenUpdating = False ' Set numrows = number of rows of data. NumRows = Range("A3", Range("A3").End(xlDown)).Rows.Count ' Select cell a3. Range("A3").Select ' Establish "For" loop to loop "numrows" number of times. For x = 1 To NumRows ' Insert your code here. ' Selects cell down 1 row from active cell. ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub 

显然,没有办法唯一标识Grand Budget工作表中的行,我们只知道该行应该在哪个表上。

因此,如果您真的需要这样做,那么只要预算表CE列中的任何地方发生变化,恐怕您将不得不重新填充整个用户表。 如果B列发生变化,则必须完全重新填充2个用户表…这往往是一个非常容易出错的过程,所以最好是完全重新填充所有的用户表。

我的build议是要求你的客户改变要求…例如,问他们是否可以有一些重新计算button来启动你的过程。

如果你的客户真的不想使用一个button,你可能会问,如果你的macros(它重新填充所有的用户表)自动启动,当你打开工作簿,并且每当你离开macros预算表(实际上是唯一的input表)。


顺便说一下:如果在B列中不存在首字母缩写,你想要发生什么?

更新: “我只是跟客户说话,我说:”做你必须做的!“我喜欢重新计算button的想法,请把它推荐给我! – 娜娜Amponsah


如果您对vba没有多less经验,最好从第二部分开始: 为新的首字母缩写创build新工作表

 Option Explicit Sub CreateNewSheet(Initials As String) 'Checks whether a sheet with the name "Initials" exists 'Creates a new sheet if it doesn't exist yet. '*** Your code goes here *** End Sub 

请注意:开始之前,您应该备份原始的工作簿。

这个页面的第一部分告诉你如何为你的程序创build一个模块。

你可能会看看: