【问题标题】:Change column width based on another cell value根据另一个单元格值更改列宽
【发布时间】:2016-08-10 10:22:51
【问题描述】:

在 excel 中,我有两个三列,转置后我需要进行一些更改。让数据为::

A   B   C
a   K   .2 
a   Q   .23
a   R   .45
b   L   .3
b   S   .12
c   M   .43
d   N   .54
e   O   .32
f   P   .067

After transpose::
a K Q R
b L S
c M
d N
e O
f P

每一行都由我在 B 列中对应于 A 列的任何值填充。现在的问题是我在其中填充 K L S Q R 的单元格,即 B 列值应该具有不同的大小,并且与它们的权重的比率是 C 列.例如K应该是0.2,R应该是0.45或者相同的比例。并且由于这些是写在顶部下方的一个,因此无法将整个列更改为“a”,因为下一行单元格将再次具有不同的大小。

我认为这可以通过宏来实现,但我不确定。如果您需要任何进一步的信息,请告诉我。谢谢!

【问题讨论】:

    标签: excel vba macros


    【解决方案1】:

    不完全确定您的措辞是什么意思,但通过 vba 更改列宽当然很容易。

    如果您想根据 C3 的值更改 F 列,那么您需要: Range("F:F").ColumnWidth = Range("C3").Value

    显然限定您的范围,使其特定于您想要的任何工作表/工作簿等。

    【讨论】:

    • 我必须根据 C 列中每个单元格的权重更改每个广告的大小。让我知道哪部分让您感到困惑?
    • 我知道你的第一个表在 B 列中有列引用,在 C 列中有值,但是你让我对 A 列和转置的东西感到困惑。我认为您的主要问题是关于列宽而不是获取值,只要您知道从原则中获取值的位置应该是什么。
    • 但是如果你看一下这个例子,并不是每一列都有唯一的宽度。每个单元格可能有不同的宽度,最终它看起来像一个水平堆叠的图表。
    • 所以您正在考虑让B1B2 具有不同的宽度?我认为这是不可能的。
    • 由于电子表格只有两个维度(上下和左右),因此向下的同一列没有不同的宽度。您可以通过越来越多的合并单元格来覆盖您的所有选项来解决它,但这将非常混乱且难以维护。就我在答案中写的内容而言,我假设您打开了 VBE(Alt+F11)?在 Project Explorer 中双击您的工作表,输入Sub test,按回车键,然后在它和应该出现的End Sub 之间的空白处粘贴Range("F:F").ColumnWidth = Range("C3").Value
    猜你喜欢
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2018-01-16
    • 2013-12-27
    相关资源
    最近更新 更多