一段时间以来,我一直在尝试自己整理这些代码,但无法正常工作。 基本上我想做的是在Sheet1上有一个值表,在其中我输入1、1.1、1.2,...到5,并使每个单元格中的每个值对应于在Sheet2上的特定单元格中创建颜色渐变。
例如,如果我在Sheet1 B12中输入“ 1.1”,我希望Sheet2 B13使用特定的颜色渐变进行着色,该特定颜色渐变与Sheet1 B12包含“ 1.2”的情况稍有不同,并且此渐变将在1到5之间变化
到目前为止,我想我已经弄清楚了如何使用With和Case语句根据另一个单元格的值用渐变填充一个单元格。但是,我无法弄清楚如何使代码在工作表之间工作以及如何在Sheet1上更改单元格值并在Sheet2上更改颜色时自动运行。
<div class="page">hmmm<div>
<style>
.page {
height:1600px;
}
@page {
size: A4;
margin: 0;
}
@media print {
html, body {
width: 210mm;
height: 297mm;
}
.page {
margin: 0;
border: initial;
border-radius: initial;
width: initial;
min-height: initial;
box-shadow: initial;
background: initial;
page-break-after: always;
}
}
</style>
我有两种情况都没有解决过,所以我最终没有编写数百行代码,而且没有用。一旦我知道它适用于这两种情况,我就可以一遍又一遍地复制它并按照自己的方式开发渐变,这样,Sheet2上的每个单元格都会根据Sheet1上相应单元格的值具有特定的渐变。
感谢您的帮助!
答案 0 :(得分:0)
将代码粘贴到Sheet1
中,而不要粘贴到任何Module
或Thisworkbook
中
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B13")) Is Nothing Then
Select Case Range("B13").Value
Case 1.1
With Sheets("Sheet2").Range("B12").Interior
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 180
.Gradient.ColorStops.Clear
End With
With Sheets("Sheet2").Range("B12").Interior.Interior.Gradient.ColorStops.Add(0)
.Color = RGB(0, 176, 0)
.TintAndShade = 0
End With
With Sheets("Sheet2").Range("B12").Interior.Interior.Gradient.ColorStops.Add(0.7)
.Color = RGB(0, 176, 80)
.TintAndShade = 0
End With
With Sheets("Sheet2").Range("B12").Interior.Interior.Gradient.ColorStops.Add(1)
.Color = RGB(255, 255, 255)
.TintAndShade = 0
End With
Case 1.2
With Sheets("Sheet2").Range("B12").Interior.Interior
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 180
.Gradient.ColorStops.Clear
End With
With Sheets("Sheet2").Range("B12").Interior.Interior.Gradient.ColorStops.Add(0)
.Color = RGB(0, 176, 80)
.TintAndShade = 0
End With
With Sheets("Sheet2").Range("B12").Interior.Interior.Gradient.ColorStops.Add(0.3)
.Color = RGB(0, 176, 80)
.TintAndShade = 0
End With
With Sheets("Sheet2").Range("B12").Interior.Interior.Gradient.ColorStops.Add(1)
.Color = RGB(255, 255, 0)
.TintAndShade = 0
End With
End Select
End If
End Sub
假设您的代码运行正常,那么只要sheet1上的值发生更改,它就会自动运行。